0

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 有多少变化。

4

2 回答 2

1

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

SET /P name = What is your name? 

进入这个

SET /P name=What is your name? 

你的问题就会消失。

于 2013-03-05T22:58:51.213 回答
0

因为我不能添加任何评论,所以我必须发布一个新的答案。资料:

“set 指令中等号周围不能有任何空格。”

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

SET /P name= What is your name? 
于 2013-03-06T09:52:19.643 回答