如何在Windowsbatch file中创build“你确定”提示?
我有一个batch file,自动将一堆文件从一个地方复制到另一个地方。 唯一的事情就是帮助我,我不小心从我的命令缓冲区中select了这个命令,并且批量覆盖了未经改变的更改。
我的.bat文件需要什么代码才能说出“你确定”,并让我在运行文件的其余部分之前input“y”? 如果input了“y”,则应该退出该行的执行。
好吧,我标记了这个没有回答,因为我仍然无法弄清楚。 当我打电话“退出”时 它closures了不是我想要的cmd.exe。 所有这一切都是因为Windows实现了命令缓冲区错误(与我至less使用的不同)
你想要的东西像:
@echo off setlocal :PROMPT SET /P AREYOUSURE=Are you sure (Y/[N])? IF /I "%AREYOUSURE%" NEQ "Y" GOTO END echo ... rest of file ... :END endlocal
尝试CHOICE命令 ,例如
CHOICE /C YNC /M "Press Y for Yes, N for No or C for Cancel."
choice
命令无处不在。 对于较新的Windows版本, set
命令具有/p
选项,您可以获取用户input
SET /P variable=[promptString]
看到set /?
获取更多信息
这里有点简单:
@echo off set /p var=Are You Sure?[Y/N]: if %var%== Y goto ... if not %var%== Y exit
要么
@echo off echo Are You Sure?[Y/N] choice /c YN if %errorlevel%== Y goto ... if %errorlevel%== N exit
如果要批处理程序退出到提示符而不closures提示(AKA cmd.exe),则可以使用“exit / b”。
这可能有帮助。
set /p _sure="Are you sure?" ::The underscore is used to ensure that "sure" is not an enviroment ::varible if /I NOT "_sure"=="y" ( ::the /I makes it so you can exit /b ) else ( ::Any other modifications... )
或者如果你不想使用多less行…
Set /p _sure="Are you sure?" if /I NOT "_sure"=="y" exit /b ::Any other modifications and commands.
希望这可以帮助…