簡體   English   中英

如何在Windows批處理文件中獲取其余參數?

[英]How to get the rest of arguments in windows batch file?

我知道我可以用%0得到第一個參數,用%1得到第二個,依此類推。我也可以用%*獲得所有參數。

我可以從第二個參數得到所有參數嗎? 例如,如果我跑

foo.bat bar1 bar2 bar3 bar4

我怎么才能得到bar2 bar3 bar4

@ECHO OFF
SETLOCAL
SET allargs=%*
IF NOT DEFINED allargs echo no args provided&GOTO :EOF 
SET arg1=%1
CALL SET someargs=%%allargs:*%1=%%
ECHO allargs  %allargs%
ECHO arg1     %arg1%
ECHO someargs %someargs%

這將使SOMEARGS至少有一個前導分隔符(如果已設置)

使用SHIFT命令。 但是每次換班都會失去第一名。 這不會改變%*但你將能夠獲得所有參數,但第一個:

@echo off
shift

set "arg_line= "
:parse_args
if "%~1" NEQ "" (
 arg_line=%argline% "%~1"
 goto :parse_args
)

現在你將擁有所有參數,但第一個存儲在%arg_line%

您需要使用SHIFT 它移動參數的視在位置,然后%*將從位置移動到所有參數。 在使用SHIFT之前,您應該獲得第一個參數。

有關 SHIFT 更多信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM