这是我要测试的代码。我四舍五入认为这不起作用,因为当我输入一个字符串时,当我回显它时(带或不带引号),它不会输出变量。我只是使用 Notepad++ 编写此内容,并在 Windows 8.1 上运行它。
@ECHO OFF
set /p name = Enter a name:
echo "%name%"
pause
exit
输入“Bob”时的准确输出:
Enter a name:Bob
""
Press any key to continue . . .
使用
set /p name =...
,您定义的是变量 %name %
,而不是 %name%
。
尝试输入
set /?
。你为什么不这么做呢。
SET /P variable=[promptString]
您的命令所做的就是写出您输入的内容
set 命令中可能有空格。
set /p name=whatever
这应该适合你:
@echo off
set /p name=Enter a name:
echo "%name%"
pause
exit
输入“Bob”时的准确输出:
Enter a name:Bob
"Bob"
Press any key to continue . . .
我遇到了同样的问题,正在像这样的帖子下寻找答案,所以我将把它放在这里,以防它对任何人有帮助。
我遇到了完全相同的变量不包含任何内容的问题,我通过在脚本顶部添加 SETLOCAL ENABLEDELAYEDEXPANSION 来修复它。我的 SET /P 位于 IF 语句内,它们可以以奇怪的方式交互。如果这样做,您可以使用 !VARIABLE! 访问 SET /P VARIABLE=...而不是 %VARIABLE%。