本文介绍了批处理文件中未设置的变量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
setlocal enabledelayedexpansion
If "%computername%"=="USER-PC" (
set abc = ZZZ.bat
echo %abc%
pause
)
此处abc始终显示为空白.可能是什么原因?
Here abc always shows blank. What could be the possible reason?
推荐答案
由于启用了延迟扩展,因此您位于中途.但是,延迟扩展使用!
字符而不是%
,因此您需要的是:
You're halfway there, inasmuch as you've enabled delayed expansion. However, delayed expansion uses the !
characters rather than %
, so what you need is:
setlocal enabledelayedexpansion
if "%computername%"=="USER-PC" (
set abc=ZZZ.bat
echo !abc!
pause
)
还请注意:
set abc = ZZZ.bat
不会不创建一个abc
变量,它会创建一个abc
变量并将其设置为ZZZ.bat
,如下所示:
does not create an abc
variable, it creates an abc
one and sets it to ZZZ.bat
, as per:
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.
您会看到我已经删除了=
字符周围的空格以解决此问题.
You'll see I've removed the spaces around the =
character to fix this.
这篇关于批处理文件中未设置的变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!