私はバッチ ファイルを使用して、動作するために追加の引数を必要とするコマンドのラッパーを作成します。たとえば、すべての呼び出しpip.cmd
にカスタム プロキシ引数を追加するファイルがあります。pip
pip.exe --proxy="myproxy" %1 %2 %3 %4 %5
ご覧のとおり、の%1
引数を に転送するために という表記を使用していますが、引数が 5 個を超えるとこの方法は機能しなくなります。Linux では、すべての引数を一度に処理する を使用するだけです。Windows シェルでも同様の表記法や適切な回避策はありますか?pip.cmd
pip.exe
"$@"
答え1
Windows シェルにも同様の表記法や適切な回避策はありますか?
%*
Unix のcmd
に相当します。$@
注記:
- 最大 255 個のパラメータが許可されます。
例 (pip.cmd):
pip.exe --proxy="myproxy" %*
コマンドライン引数(パラメータ)
%*
バッチスクリプトではすべての引数を参照します(例%1 %2 %3 %4 %5 ...%255
:)
ソース -パラメーター
参考文献
- Windows CMD コマンドラインの AZ インデックス- Windows コマンド ラインに関連するあらゆることに関する優れたリファレンス。
- パラメーター- コマンドライン引数 (またはパラメーター) は、バッチ スクリプトに渡される任意の値です。
答え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
コマンド/プログラム名と%*
すべてのパラメータはどこにありますか。
見るこの記事。