3

作業中のバッチ スクリプトに関して 2 つの質問があります。バッチ スクリプトに関する質問はよくあることですが、正確な質問に対する回答が見つからないので、質問してみようと思いました。問題のある領域は、メニューのユーザー入力セクションです。

2 つの問題があります。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% を受け取っていないかのようにエラーを返すいくつかのコマンドの 2 番目の問題。

set /P INPUT=[Testone Input]: %testone%
set /P INPUT=[Testtwo Input]: %testtwo%
commandtorun.exe -f %testone% -h %testtwo% 

ありがとう!

4

2 に答える 2