批处理命令“set /p”不会将用户输入存储到变量中

问题描述 投票:0回答:4

这是我要测试的代码。我四舍五入认为这不起作用,因为当我输入一个字符串时,当我回显它时(带或不带引号),它不会输出变量。我只是使用 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 . . .
batch-file scripting set
4个回答
2
投票

使用

set /p name =...
,您定义的是变量
%name %
,而不是
%name%


0
投票

尝试输入

set /?
。你为什么不这么做呢。

 SET /P variable=[promptString]

您的命令所做的就是写出您输入的内容

set 命令中可能有空格。

set /p name=whatever


0
投票

这应该适合你:

@echo off

set /p name=Enter a name:
echo "%name%"

pause
exit

输入“Bob”时的准确输出:

Enter a name:Bob
"Bob"
Press any key to continue . . .

0
投票

我遇到了同样的问题,正在像这样的帖子下寻找答案,所以我将把它放在这里,以防它对任何人有帮助。

我遇到了完全相同的变量不包含任何内容的问题,我通过在脚本顶部添加 SETLOCAL ENABLEDELAYEDEXPANSION 来修复它。我的 SET /P 位于 IF 语句内,它们可以以奇怪的方式交互。如果这样做,您可以使用 !VARIABLE! 访问 SET /P VARIABLE=...而不是 %VARIABLE%。

© www.soinside.com 2019 - 2024. All rights reserved.