129得票2回答
Windows批处理中IF语句内的SET命令无效

当我运行这个脚本(从一个 .bat 文件):set var1=true if "%var1%"=="true" ( set var2=myvalue echo %var2% ) 我总是得到:ECHO is on. 意思是说var2变量并没有真正被设置。 有人可以帮我理解为什么吗?

80得票12回答
批处理脚本中的数组、链表和其他数据结构

我在使用cmd.exe时,发现它的帮助文档中没有提供如何定义数组的信息。 我已经找到了如何定义简单变量的方法:set a=10 echo %a% 我想创建数组、链表等数据结构,但是在cmd.exe中是否可以实现呢?(我的意思是:cmd.exe中是否存在任何数组关键字?) 我想要实现一些算法,...

75得票4回答
SETLOCAL和ENABLEDELAYEDEXPANSION是如何工作的?

我注意到大多数脚本中,它们通常在同一行中,如下所示:SETLOCAL ENABLEDELAYEDEXPANSION 这两个命令实际上是分开的,可以分别写在不同的行吗? 如果在脚本的第一行设置了ENABLEDELAYEDEXPANSION并且直到脚本结束都没有禁用它,这会对脚本产生不良影响吗?

61得票5回答
批处理文件中延迟扩展的示例

有人能给我一个批处理脚本在启用延迟环境变量和不启用时会表现出不同的示例吗?是否有任何情况下您不想使用延迟环境变量?谢谢。

51得票2回答
Windows批处理变量无法设置

我认为我遇到了Windows批处理脚本中的一个错误。 我无法设置在扩展if语句中的变量。 这是我的脚本的一个独立部分:@echo off set success=1 set Version=12345 set Target=Client set Type=456 set dir= set z...

32得票1回答
变量的行为不符合预期

我一直在苦苦寻找正确的批处理文件语法,但我无法弄清楚为什么有些事情不起作用。 每次执行时变量i都没有被递增。 strc的连接似乎没有起作用。 这是我的代码:set i=0 set "strc=concat:" for %%f in (*.mp4) do ( set /a i+=1...

23得票1回答
为什么我的设置命令没有存储任何内容?

我试图在之后访问TOMCAT_VER的值,但它显示为空字符串。if exist "%_REALPATH%\tomcat-%TOMCAT_VER2%" ( set CATALINA_HOME=%_REALPATH%\tomcat-%TOMCAT_VER2% set TOMCAT_VER=...

16得票2回答
为什么在if语句中无法获取延迟扩展变量的子字符串?

为什么在if语句中内联操作字符串可以不使用延迟扩展变量,但在其他情况下会失败。例如:set test=testString if %test:~0,4%==test echo Success 这个工作是正确的,返回Success。但是如果我执行以下操作:setLocal enableDelay...

9得票2回答
为什么在Windows批处理文件中使用setlocal会干扰chdir?

如果我运行批处理文件 setlocal chdir .. 目录没有改变,但是如果我运行 setlocal endlocal chdir .. 程序正常工作。这正是使用setlocal所期望的。然而,当你阅读setlocal的定义时,它与环境变量的查看方式有关,并不完全明显。我希望...