簡體   English   中英

%* 在批處理文件中是什么意思?

[英]What does %* mean in a batch file?

我已經在批處理文件和命令行中看到了%*的用法。

有人可以舉例說明%*的典型用法嗎?

它的意思是“命令行中的所有參數”。

例如,當您想將命令行從批處理文件轉發到另一個程序時,它很有用:

REM mybatchfile.cmd
echo You called this with arguments: %*
echo I will now forward these to the DIR command.
dir %*

前面的任何答案中都沒有列出一個重要的一點: %*從命令行擴展到所有參數,即使在SHIFT操作之后也是如此。

通常, SHIFT會將參數%2移動到%1 ,將%3移動到%2等,並且%1不再可用。 但是%*忽略任何SHIFT ,因此完整的參數列表始終可用。 這既可以是祝福,也可以是詛咒。

%*擴展為傳遞給腳本的完整參數列表。

當您想調用其他程序或腳本並傳遞與您的腳本相同的參數時,通常會使用它。

%*修飾符是一個唯一的修飾符,表示批處理文件中傳遞的所有參數。 您不能將此修飾符與%~修飾符結合使用。 %~語法必須由有效的參數值終止。

資源:

同樣重要的是要注意%*不會像單個%n參數那樣進行解析。 例如,如果參數是:

a "bc" j=kd,e,f

然后ECHO %*將顯示:

a "bc" j=kd,e,f

但是ECHO 1=%1 2=%2 3=%3 4=%4 5=%5 6=%6 7=%7 8=%8 9=%9會顯示:

1=A 2="BC" 3=J 4=K 5=D 6=E 7=F 8= 9=

不同之處在於如何處理包含特殊字符但未包含在引號中的參數。 特殊字符是通常的嫌疑人:空格 & ( ) [ ] { } ^ = ; ' + , ` ~

暫無
暫無

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

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