1

私はバッチでこのスクリプトを持っていて、質問 1 から 12 の範囲を取得しました。
私のコードはすべて機能しますが、選択された無効な範囲のエラー メッセージをスローするためにバッチにスローするコードが見つからないようです。

例: オプションの一部ではない 13 を選択すると、自動的に 1
になります。

代わりに次のコードを使用したため、バッチで shift コマンドを使用していません

set /p choice=Type the number that corresponds to the Step you want to take.
if not '%choice%'=='' set choice=%choice:~0%

~0では、shift コマンドを使用する代わりに、9 を渡した数字を使用できることに注意してください。
それでも、ユーザーが 13 または up と入力してエラーが表示された場合に表示されるコードが必要です。
何か案は?つまり、選択肢が 13 ~ 999 の範囲にある場合、エラーが表示されます。

アップデート

わかりました、コードを見て、1 行のコードが抜けていることに気付きました。これは

@echo "%choice%" は有効な選択/オプションではありません

'%choice%'==''を指定した場所のコーディングは正しかったようです。選択が間違っていると言うエコーを残しませんでした。そこにはエラーレベルは必要ありませんでした。

これが誰かを助けることを願っています

4

1 に答える 1

0

明確にするために:次のコードは、選択肢が13より大きい場合にエラーステートメントを出力し、入力された値を入力された最初の文字に設定します

@echo off

SET /P choice=Type the number that corresponds to the Step you want to take.

IF %choice% GTR 12 GOTO Error

ECHO You entered %choice%

GOTO End

:Error

ECHO %choice% is not a valid selection/option

set choice=%choice:~0,1%

ECHO %choice%

:End

于 2012-09-27T15:31:30.347 に答える