如何在批处理文件中读取控制台的输入?

Noh*_*sib 76 windows cmd batch-file

如何在批处理文件中读取控制台的输入?我想要实现的是C中scanf的功能.如何在批处理文件中执行相同的操作?

Ray*_*hen 132

链接的建议重复中的代码片段读取用户输入.

ECHO A current build of Test Harness exists.
set /p delBuild=Delete preexisting build [y/n]?: 
Run Code Online (Sandbox Code Playgroud)

用户可以根据需要键入任意数量的字母,它将进入delBuild变量.

  • 注意:您可以将用户输入与`%delBuild%`一起使用 (32认同)
  • 必须注意,当启用“setlocal EnableDelayedExpansion”时,“echo !delBuild!”将为您提供更可靠的执行输出 (3认同)

Tan*_*ash 22

就像每个人都说的那样,使用set /p varname="prompt message"就足够了.如果您只是想快速打开cmd实例而不是立即退出,只需执行以下操作即可

set /p temp="Hit enter to continue"
Run Code Online (Sandbox Code Playgroud)

在脚本的末尾,它将保持窗口打开.

  • 为此,有人发明了`pause`命令.它也是`set/p`,而不是`set\p`. (12认同)
  • "正如每个人都在说",意味着已经给出了答案,所以另一个没有更多信息的人是不必要的 (5认同)

Ric*_*ams 14

除现有答案外,还可以设置默认选项,如下所示:

echo off
ECHO A current build of Test Harness exists.
set delBuild=n
set /p delBuild=Delete preexisting build [y/n] (default - %delBuild%)?:
Run Code Online (Sandbox Code Playgroud)

这样,如果用户想要输入默认值,用户只需点击"Enter"即可.