1. ホーム
  2. windows

[解決済み] .bat "ファイルのコマンドラインパラメータを確認するには?

2022-05-13 22:12:54

質問

私の 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!

どのように解決するのですか?

パラメータが空白であることを確認する必要があります。 if "%~1"=="" goto blank

それができたら、次に-bでif/else切り替えをします。 if "%~1"=="-b" (goto specific) else goto unknown

パラメータを引用符で囲むと、空白/空白/欠落したパラメータなどのチェックが容易になります。 "~"は、コマンドライン引数にダブルクォートがあった場合、それが取り除かれるようにします。