setlocal enabledelayedexpansion
If "%computername%"=="USER-PC" (
set abc = ZZZ.bat
echo %abc%
pause
)
这里abc总是显示空白。可能的原因是什么?
答案 0 :(得分:2)
你已经中途,因为你已经启用了延迟扩展。但是,延迟展开使用!
字符而不是%
,因此您需要的是:
setlocal enabledelayedexpansion
if "%computername%"=="USER-PC" (
set abc=ZZZ.bat
echo !abc!
pause
)
另请注意:
set abc = ZZZ.bat
不创建abc
变量,它会创建一个abcspace
变量并将其设置为spaceZZZ.bat
,具体如下:
C:\Users\pax> set abc = 1
C:\Users\pax> echo .%abc%.
.%abc%.
C:\Users\pax> echo .%abc %.
. 1.
C:\Users\pax> set xyz=1
C:\Users\pax> echo .%xyz%.
.1.
您会看到我已删除=
字符周围的空格以解决此问题。