私の OS は Windows Vista です。ユーザーがコマンドライン パラメータを入力したかどうかを確認するための「.bat」ファイルが必要です。パラメータが等しい場合は何か処理を-b
行い、そうでない場合は「無効な入力」とフラグを立てます。ユーザーがコマンドライン パラメータを入力しない場合は何か処理を行います。次の .bat ファイルを作成しました。-b
等しくない-b
場合には機能しますが、ユーザーがコマンドライン パラメータを渡さない場合は失敗します。
常にエラーが発生します:
GOTO was unexpected at this time.
ここで私が何を間違っているのか誰か教えてもらえますか?
ECHO OFF
CLS
ECHO.
IF [%1]==[/?] GOTO BLANK
IF %1=="-b" GOTO SPECIFIC
IF NOT %1=="-b" GOTO UNKNOWN
:SPECIFIC
ECHO SPECIFIC
GOTO DONE
:BLANK
ECHO No Parameter
GOTO DONE
:UNKNOWN
ECHO Unknown Option
GOTO DONE
:DONE
ECHO Done!
ベストアンサー1
パラメータが空白になっているかどうかを確認する必要があります。if "%~1"=="" goto blank
これを実行したら、-b で if/else スイッチを実行します。if "%~1"=="-b" (goto specific) else goto unknown
パラメータを引用符で囲むと、空白/空/欠落パラメータなどのチェックが容易になります。「~」は、コマンドライン引数に二重引用符があった場合に二重引用符が削除されることを保証します。