有人可以帮我处理我的批次.我试图在我的批次开始时逃脱,但它不起作用.我确信它很简单,但我不是这类编程的常规用户.
cls
@echo off
set usr_out=y
set /p usr_out=Press [N] to cancel:
if NOT %usr_out% == Y goto myend
if NOT %usr_out% == y goto myend
echo in
pause
exit
:myend
echo out
pause
编辑:对不起,我忘了详细说明上面的代码只有echo out在我没有输入值时才转到该行.
您将默认值设置%usr_out%为小写 y:
set usr_out=y
但随后检查变量是不平等的一个大写 Y:
if NOT %usr_out% == Y goto myend
由于y并且Y确实不相等,因此您的脚本正确地跳转到:myend此时.
你需要在这里修改你的逻辑.如果要在不满足所有给定条件的情况下跳过代码块,则必须在批处理中使用类似的内容:
if "%usr_out%"=="y" goto continue
if "%usr_out%"=="Y" goto continue
goto myend
:continue
但是,在您的特定情况下,您可以使用更简单的方法,因为您只需要对一个字母进行不区分大小写的检查:
if /i not "%usr_out%"=="y" goto myend
另一方面:exit我建议使用goto :eof(跳转到脚本的末尾)或exit /b(退出批处理脚本而不终止cmd.exe)而不是普通的.否则,在命令提示符下手动运行脚本可能会无意中终止命令提示符窗口.
| 归档时间: | 
 | 
| 查看次数: | 11063 次 | 
| 最近记录: |