Windows シェルの `$@` に相当

Windows シェルの `$@` に相当

私はバッチ ファイルを使用して、動作するために追加の引数を必要とするコマンドのラッパーを作成します。たとえば、すべての呼び出しpip.cmdにカスタム プロキシ引数を追加するファイルがあります。pip

pip.exe --proxy="myproxy" %1 %2 %3 %4 %5

ご覧のとおり、の%1引数を に転送するために という表記を使用していますが、引数が 5 個を超えるとこの方法は機能しなくなります。Linux では、すべての引数を一度に処理する を使用するだけです。Windows シェルでも同様の表記法や適切な回避策はありますか?pip.cmdpip.exe"$@"

答え1

Windows シェルにも同様の表記法や適切な回避策はありますか?

%*Unix のcmdに相当します。$@

注記:

  • 最大 255 個のパラメータが許可されます。

例 (pip.cmd):

pip.exe --proxy="myproxy" %*

コマンドライン引数(パラメータ)

%*バッチスクリプトではすべての引数を参照します(例%1 %2 %3 %4 %5 ...%255:)

ソース -パラメーター


参考文献

答え2

以下を使用できます%*:

@echo off
echo %0
echo %*

これを実行すると次のようになります:

C:\>test.cmd this is a test 1 2  3  4  5 6 7 8
test.cmd
this is a test 1 2  3  4  5 6 7 8

%0コマンド/プログラム名と%*すべてのパラメータはどこにありますか。

見るこの記事

関連情報