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变化了多少。
答案 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?