如何在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. 

希望这可以帮助…