我该如何在批处理文件中从控制台读取输入?我的目标是实现类似于C语言中scanf的功能。在批处理文件中怎样能够实现同样的功能呢?
我该如何在批处理文件中从控制台读取输入?我的目标是实现类似于C语言中scanf的功能。在批处理文件中怎样能够实现同样的功能呢?
链接中提出的重复问题中的代码片段读取用户输入。
ECHO A current build of Test Harness exists.
set /p delBuild=Delete preexisting build [y/n]?:
用户可以随意输入字符,这些字符将被存储在delBuild变量中。%delBuild%
。 - Jacobsetlocal EnableDelayedExpansion
之后,使用echo !delBuild!
将会在执行时给出更可靠的输出。 - xacinay如果你只是想快速地保持 cmd 实例处于打开状态而不立即退出,那么只需要简单地执行以下操作即可:
set /p asd="Hit enter to continue"
在你的脚本末尾添加它,它会保持窗口打开。
请注意,这将设置“asd”为环境变量,并可以替换为其他任何内容。cmd
仍然可以工作,但是从Powershell不行。确保你使用的是正确的东西。 - TankorSmashtemp
环境设置通常指向临时文件夹,因此这样做会覆盖您的设置。幸运的是,如果您恰好在cmd窗口中运行此命令,则仅影响该实例,并在运行exit
后损坏将被消除。您可以通过执行set temp
来检查当前值。 - Andrew除了现有的答案之外,还可以按以下方式设置默认选项:
echo off
ECHO A current build of Test Harness exists.
set delBuild=n
set /p delBuild=Delete preexisting build [y/n] (default - %delBuild%)?:
这使用户可以在需要输入默认值时,只需按下“Enter”键即可。
set /p
读取用户键入的任何内容,无论是一个字母还是多个。 - Raymond Chen