我有两个问题与我正在处理的批处理脚本相关。我知道批处理脚本问题很常见,但是我没有找到我的确切问题的答案,所以我想试着问一下。问题出现在菜单上的用户输入部分。
存在两个问题:1)输入的内容如果不是指定选项之一,则会导致脚本跳转到随机区域。2)一些使用外部程序的部分即使我知道语法和标志的使用通常是正确的(例如,我可以手动运行它们...),但它们仍然没有使用用户%input%(因此似乎是输入未被捕获的原因)。
第一个问题示例:
如果用户在选择提示处输入“b”,我希望脚本能够给出错误并重新显示菜单。但现在它会跳到其他菜单。我猜我需要一些ELSE语句?有没有人可以提供一个示例来完成这个操作?
第二个问题是,某些命令未正确使用%input%,导致返回一个错误,就像从未收到%input%一样。
感谢!
存在两个问题:1)输入的内容如果不是指定选项之一,则会导致脚本跳转到随机区域。2)一些使用外部程序的部分即使我知道语法和标志的使用通常是正确的(例如,我可以手动运行它们...),但它们仍然没有使用用户%input%(因此似乎是输入未被捕获的原因)。
第一个问题示例:
:MenuOne
echo Select one of the following options:
echo 1) x
echo 2) y
echo Q) Quit
set INPUT=
set /P INPUT=[1,2,Q]: %=%
If "%INPUT%"=="1" goto xoption
If "%INPUT%"=="2" goto yoption
If /I "%INPUT%"=="Q" goto Quit
:xoption
@REM Here goes a lot more submenus and/or options that actually run tools via cmd.
:yoption
@REM Again, menus and/or tools being invoked, in a listed menu, designed like above.
:Quit
echo Quitting...
exit
如果用户在选择提示处输入“b”,我希望脚本能够给出错误并重新显示菜单。但现在它会跳到其他菜单。我猜我需要一些ELSE语句?有没有人可以提供一个示例来完成这个操作?
第二个问题是,某些命令未正确使用%input%,导致返回一个错误,就像从未收到%input%一样。
set /P INPUT=[Testone Input]: %testone%
set /P INPUT=[Testtwo Input]: %testtwo%
commandtorun.exe -f %testone% -h %testtwo%
感谢!