1. ホーム
  2. batch-file

[解決済み] バッチファイルの起動/呼び出し時に、引数が定義されているかどうかを確認するにはどうすればよいですか?

2022-10-03 11:03:45

質問内容

バッチファイルで以下の検証ロジックを使用しようとしていますが、バッチファイルにパラメータが供給されない場合でも、"usage" ブロックは決して実行されません。

if ("%1"=="") goto usage

@echo This should not execute

@echo Done.
goto :eof

:usage
@echo Usage: %0 <EnvironmentName>
exit 1

私は何を間違えているのでしょうか?

どうすればいいのでしょうか?

コマンドライン引数が設定されているかどうかのチェックは [%1]==[] のように、しかし デイブ・コスタ が指摘しているように , "%1"=="" も動作します。

また、echoの使い方で大なり小なりの記号をエスケープする構文エラーを修正しました。さらに exit が必要です。 /B 引数が必要です。 CMD.exe は終了します。

@echo off

if [%1]==[] goto usage
@echo This should not execute
@echo Done.
goto :eof
:usage
@echo Usage: %0 ^<EnvironmentName^>
exit /B 1