12

ディレクトリで実行されるバッチ スクリプトを作成しています。スクリプトが単一のディレクトリではなくフォルダー ツリーを実行するようにするフラグ (-r や /r など) を追加できるようにしたいと考えています。バッチを使用してフラグ オプションを追加することは可能ですか?

ありがとう

4

1 に答える 1

20

確かにそれは可能です。コマンド ライン パラメータは、%1、%2 などとしてバッチ ファイルに渡されます (%0 はバッチ ファイルの名前です)。

IF "%1"=="/r" ECHO You passed the /r flag.

SHIFT最初の引数を削除し、他のすべての引数を 1 つ移動するために使用します。/r をコマンド ラインの任意の場所に配置できるようにする場合は、これを使用して少し手の込んだものにすることができます。例えば:

:processargs
SET ARG=%1
IF DEFINED ARG (
    IF "%ARG%"=="/r" ECHO You passed the /r flag.
    SHIFT
    GOTO processargs
)

または、次のようなループ%*で (引数リスト全体に展開されます) を使用します。FOR

FOR %%A IN (%*) DO (
    IF "%%A"=="/r" ECHO You passed the /r flag.
)
于 2013-02-28T19:17:04.540 に答える