15

我尝试执行一个简单的批处理文件脚本:

echo %1
set var = %1
echo %var%

当我在 XP 中运行它时,它给了我预期的输出,但是当我在 Vista 或 Windows 7 中运行它时,我在尝试打印(回声)值时得到“Echo is On”。

下面是程序的输出:

G:\2012>abc.bat 1

G:\2012>echo 1
1

G:\2012>set var = 1

G:\2012>echo
ECHO is on.

G:\2012>
4

1 回答 1

19

去掉集合表达式中的空格。等号 (=) 的两边可以且不应有空格

set var=%1

顺便说一句:我通常以关闭@echo 开始所有批处理文件,并以打开@echo 结束它们,这样我就可以避免将代码与批处理文件的输出混合。它只是让你的批处理文件输出更好更干净。

于 2012-09-08T08:27:43.983 回答