バッチファイルでパラメータが空かどうかをテストする適切な方法は何ですか? 質問する

バッチファイルでパラメータが空かどうかをテストする適切な方法は何ですか? 質問する

変数が設定されているかどうかをテストする必要があります。いくつかの手法を試しましたが、が の%1場合のように、 が引用符で囲まれている場合は失敗するようです。%1"c:\some path with spaces"

IF NOT %1 GOTO MyLabel // This is invalid syntax
IF "%1" == "" GOTO MyLabel // Works unless %1 has double quotes which fatally kills bat execution
IF %1 == GOTO MyLabel // Gives an unexpected GOTO error.

によるとこのサイトこれらはサポートされているIF構文タイプです。したがって、それを実行する方法がわかりません。

IF [NOT] ERRORLEVEL number command
IF [NOT] string1==string2 command
IF [NOT] EXIST filename command

更新: 2020-10-25 に、受け入れられた回答を括弧の使用からチルダの使用に更新しました。チルダの方が安全なので、より良いと誰もが言っています。チルダは見た目が複雑で、目的が明確ではないため、少し迷っていますが、それでも変更しました。

ベストアンサー1

引用符の代わりに角括弧を使用します。

IF [%1] == [] GOTO MyLabel

括弧は安全ではありません。角括弧のみを使用してください。

おすすめ記事