Windows 为什么我会得到;“回声开启”;尝试批量打印变量时

Windows 为什么我会得到;“回声开启”;尝试批量打印变量时,windows,windows-7,batch-file,dos,Windows,Windows 7,Batch File,Dos,我尝试执行一个简单的批处理文件脚本: echo %1 set var = %1 echo %var% 当我在XP中运行它时,它会给我预期的输出,但当我在Vista或windows 7中运行它时,当我尝试打印(Echo)值时,我会得到“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> 去

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

echo %1
set var = %1
echo %var%
当我在XP中运行它时,它会给我预期的输出,但当我在Vista或windows 7中运行它时,当我尝试打印(Echo)值时,我会得到“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>

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


顺便说一句:我通常在启动所有批处理文件时关闭@echo,在结束时也打开@echo,这样我就可以避免将代码与批处理文件的输出混淆。这只会使批处理文件的输出变得更好、更干净。

set var=%1暂停输出:=C:\>set var=C:\Users\vpatel\Desktop>pause按任意键继续。未请求用户输入输出
set var=%1