Windows 指令中的 shell 變數 $@ 相當於什麼?

Windows 指令中的 shell 變數 $@ 相當於什麼?

我想在命令批次腳本中為多個參數放置一個變量,因為數量可能會有所不同。就像在 shell 中一樣,我們使用 $@。我嘗試了幾件事,但沒有任何效果。

[編輯:我知道 %* 有效,但實際上需要使用 SHIFT 運算子刪除第一個參數並將其餘參數分配給變數。但是當我執行 SHIFT 並檢查 %* 時,它仍然顯示所有原始參數,與 unix shell 不同。

目前我正在使用 FOR 循環來執行此操作,但想知道是否有任何其他命令/方法可以 POP 第一個參數並將其餘參數分配給另一個變數。

例如:SomeCommand“多個參數”

答案1

%*批次檔中保存了傳遞給腳本的所有參數(不包括腳本名稱本身),與編寫時完全相同。

這些對你也可能有用:

%0- 用於呼叫批次檔的命令(可以是foo..\fooc:\bats\foo.bat等)
%1是第一個命令列參數,
%2是第二個命令列參數,
依此類推,直到%9(和 轉移 可以用於9號之後的人)。

操作方法:將命令列參數(參數)傳遞到 Windows 批次文件

SHIFT使用以下命令的範例:

batchfile.bat The Quick Brown
  • 如下:%0=The Quick Brown、%1=The、%2=Quick、%3=Brown。
  • SHIFT 後:%0=Quick Brown、%1=Quick、%2=Brown
  • 第二次轉變後:%0=快速布朗,%1=布朗

對於「除了第一個參數之外的所有參數」的問題,沒有很好的答案。對於適用於所有可能參數的方法來說,批次語言不夠精確,因此使用 SHIFT 是最好的方法。

可以在帖子中找到可能解決方案的討論
有沒有辦法指示批次檔中的最後 n 個參數?

相關內容