2017-06-13 12 views
-1

これで、errorlevelとchoiceコマンドを使用する際に問題が発生しました。何が起こっているのか、率直に思います。私はこのコードを使用してきたバッチで選択コマンドが動作しない

:CACD 
set stage=CACD 
echo. 
echo Make a choice 
echo. 
echo 1) 
echo 2)  
echo 3) 
echo. 
choice /c 7034 /n 
if %errorlevel% == "3" goto choice3 
if %errorlevel% == "2" goto se2 
if %errorlevel% == "1" goto choice1 
goto CACD 

:choice3 
echo you chose 3 
pause 
goto CACD 

:se2 
echo you chose 2 
pause 
goto CACD 

:choice1 
echo you chose 1 
goto CACD 

私は1を入力するたびに、何も起こりません。 2と同じことですが、3を入力するたびに動作しますか?誰も助けることができますか?

+5

あなたの選択コマンドは、入力として「7」、「0」、「3」、「4」の4文字を受け入れます。あなたは 'CHOICE/C 123/N'に変更したいかもしれないと思います – Compo

+1

[' choice'コマンド(http://ss64.com/nt/choice.html))のドキュメントを読んだことはありますか?新しいコマンドプロンプトウィンドウに 'choice /?'とタイプすることで? – aschipfl

+0

助けてくれてありがとう@Compo!出来た!私はその番号が何のためにあったのか分からなかった、私はそれが変数か何かのようだと思った。ありがとう! – Gustav

答えて

1

選択はあなたの入力を制限しているため、エラーレベルは1,2,3,255

のいずれかにすることができ、あなたのgotoラベルにERRORLEVELを追加する場合は、すべてのコマンド場合を省略することができます。 と名前に応じてすべてのラベルを。

@Echo off 
:CACD 
set stage=CACD 
echo. 
echo Make a choice 
echo. 
echo 1) 
echo 2)  
echo 3) 
echo. 
choice /c 123 /n 
goto choice%errorlevel% 
:Choice255 
Echo an error occured with your choice 
goto :Eof 

:choice3 
echo you chose 3 
pause 
goto CACD 

:choice2 
echo you chose 2 
pause 
goto CACD 

:choice1 
echo you chose 1 
goto CACD 
関連する問題