setlocal enabledelayedexpansion
If "%computername%"=="USER-PC" (
set abc = ZZZ.bat
echo %abc%
pause
)
这里 abc 总是显示空白。可能的原因是什么?
setlocal enabledelayedexpansion
If "%computername%"=="USER-PC" (
set abc = ZZZ.bat
echo %abc%
pause
)
这里 abc 总是显示空白。可能的原因是什么?
你已经成功了一半,因为你启用了延迟扩展。但是,延迟扩展使用!
字符而不是%
,因此您需要的是:
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.
你会看到我已经删除了=
角色周围的空格来解决这个问题。