CMD似乎不识别变量

时间:2013-03-05 22:44:09

标签: cmd set session-variables

CMD似乎没有识别我使用SET存储的任何变量。如果我运行这个批处理文件:

@ECHO off
SET /P name = What is your name? 
ECHO %name%
PAUSE
ECHO on

我得到以下输出:

What is your name? steven
ECHO is off.
Press any key to continue . . . 

当我从命令提示符运行第2行然后第3行时,它只打印:

%name%

我是否有错误的配置?我是否认为第2行应该创建一个应该在第3行中识别的会话变量?

我搜索过,但我只能在IF块中找到与变量扩展相关的答案。在任何IF / FOR / etc块之外发生这种情况。

顺便说一句,这是Windows 7。我不确定从一个版本的Windows到另一个版本的cmd变化了多少。

2 个答案:

答案 0 :(得分:1)

set指令中的等号周围不能有任何空格。改变这个

SET /P name = What is your name? 

进入这个

SET /P name=What is your name? 

你的问题就会消失。

答案 1 :(得分:0)

由于我无法添加任何评论,我必须发布新的答案。信息:

“设定指令中的等号周围不得有任何空格。”

只是部分正确。确切地说,它应该说:等号必须紧跟在变量名后面(在sricks3的情况下没有空格)。无论等号后面是什么,都将用作变量的输入提示,包括任何空格,因此以下代码也可以使用:

SET /P name= What is your name?