在Windows批处理文件中重新分配变量时SET不起作用

时间:2015-05-27 05:09:17

标签: batch-file

当我重新分配一个变量时,它没有反映出来。请找到以下代码

 @echo off
 setlocal enabledelayedexpansion

 set sstep=1
 set kstep=2
 set estep=5

 IF %kstep% GTR %estep% (
 GOTO END
 )
 echo test
 set sstep=2
 echo !sstep!
 :END 

但我得到的输出如下

test
!sstep!

我希望输出为

test
2

如果我删除!从上面的代码标记它正在打印以下输出

test
1

1 个答案:

答案 0 :(得分:-1)

是否为用户或系统启用/禁用了扩展名?

HKEY_CURRENT_USER\Software\Microsoft\Command Processor的注册表中查找EnableExtensions值。将其设置为1以启用,或将0设置为禁用。

启动cmd.exe的快捷方式是否禁用扩展名?

您可以尝试直接启动批处理文件,如下所示。

启用命令扩展

c:\>cmd.exe /E:ON mycommand.bat

禁用命令扩展

c:\>cmd.exe /E:OFF mycommand.bat