我使用批次檔來創建一些需要額外參數才能工作的命令的包裝器。例如,我有一個文件pip.cmd
,它向所有調用添加自訂代理參數pip
:
pip.exe --proxy="myproxy" %1 %2 %3 %4 %5
正如您所看到的,我使用%1
符號來傳輸pip.cmd
to的參數pip.exe
,但是,如果參數超過 5 個,我的方法就會失敗。在 Linux 中,我只需使用"$@"
,它可以一次處理所有參數。 Windows shell 是否有類似的表示法或合理的解決方法?
答案1
Windows shell 是否有類似的表示法或合理的解決方法?
%*
相當於Unix 中cmd
的$@
。
筆記:
- 最多允許 255 個參數。
範例(pip.cmd):
pip.exe --proxy="myproxy" %*
命令列參數(參數)
%*
在批次腳本中引用所有參數(例如%1 %2 %3 %4 %5 ...%255
)
來源 -參數
進一步閱讀
- Windows CMD 命令列的 AZ 索引- 與 Windows cmd 行相關的所有內容的絕佳參考。
- 參數- 命令列參數(或參數)是傳遞到批次腳本中的任何值。
答案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
是命令/程序名稱和%*
所有參數。
看本文。