バッチスクリプトを作成するときには常にこの問題があります。スクリプトに変数の設定を促すメッセージが表示されたら、セミコロン(これは一例)が入力されるとスクリプトが終了します。それを防ぐ方法はありますか?無効な文字入力時にバッチスクリプトが終了しないようにする
例:私はそのスクリプトを実行している見るもの
@echo off
:1
cls
echo Please enter your ID:
set /P id=
if /i %id%==119 goto Tom
if /i %id%==204 goto Brittany
if /i %id%==12 goto Shannon
if /i %id%==64 goto Jack
goto 1
:Tom
cls
echo Tom, you have to mow the lawn.
pause>nul
exit
:Brittany
cls
echo Brittany, you have to fold the laundry.
pause>nul
exit
:Shannon
cls
echo Shannon, you have to feed the dog.
pause>nul
exit
:Jack
cls
echo Jack, you have to replace the radio's capacitors.
pause>nul
exit
:
C:\>myscript.bat
Please enter your ID:
asjfash;dfjlas;ldf
asjfash;dfjlas;ldf==i was unexpected at this time.
、スクリプトが終了します。
ありがとうございます!
コマンドのstd.inputにファイルの内容をしてくださいリダイレクト[編集]あなたの質問および作成する方法をフォロー、自分の失敗コードを共有[ mcve]。 – JosefZ
私はお詫び申し上げます、JosefZ、私はここでもまだ新しいです。 – ditheredtransparency
_result_が適切であることを示していますが、十分ではありません。失敗した_code_も表示してください。 [構文:エスケープ文字、デリミタおよび引用](http://ss64.com/nt/syntax-esc.html)を読んでください。間違いなく、セミコロン(s)をエスケープする必要があります。'if/i"%varname% "==" literal; string "call:labelE' – JosefZ