我有一个网站的脚本,但我有一些问题脚本如何工作
脚本
@setlocal enableextensions enabledelayedexpansion
@echo off
title movement
color 0a
set length=
set height=a
:controls
cls
echo Use WASD to move your character ([]).
echo.
for %%a in ( %height% ) do echo.
echo %length%[]
choice /c wasd /n
if %errorlevel% equ 1 call:up
if %errorlevel% equ 2 call:left
if %errorlevel% equ 3 call:down
if %errorlevel% equ 4 call:right
:left
set length=!length:~0,-1!
goto controls
:right
set length=%length%
goto controls
:up
set height=!height:~0,-2!
goto controls
:down
set height=%height% a
goto controls
好的,现在可以有人解释第一行吗?
我打破了网络,我认为它会在命令到达时为变量赋值
我也不知道这意味着什么 set height =!height:~0,-2! 还有这个 set length =!length:~0,-1!
答案 0 :(得分:1)
对于enabledelayedexpansion
,请参阅this blog post。 (简而言之,它使变量以一种理智的方式运作。)
enableextensions
似乎是一个安全功能(尽管它们默认情况下似乎处于打开状态)。我也不清楚快速阅读它们的确切内容(除了一些较新的命令功能)。
编辑:从页面链接@ user3245060在hist评论中提到的是Cmd页面,它指示(至少某些)受enableextensions
影响的命令,并指出可能在这些命令中提供更多详细信息命令特定页面。 (似乎Noodles对这里涉及的内容有所了解。)
set height=!height:~0,-2!
似乎是字符串处理(根据this link。