44

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

%*有人可以用一个例子解释一下的典型用法吗?

4

4 回答 4

51

它的意思是“命令行中的所有参数”。

例如,当您想将命令行从批处理文件转发到另一个程序时,它很有用:

REM mybatchfile.cmd
echo You called this with arguments: %*
echo I will now forward these to the DIR command.
dir %*
于 2013-04-22T10:23:56.200 回答
27

前面的任何答案中都没有列出一个重要的点:从命令行%*扩展到所有SHIFT参数,即使在操作之后也是如此。

通常 aSHIFT会将参数移动到%2%1等,并且不再可用。但忽略 any ,因此完整的参数列表始终可用。这既可以是祝福,也可以是诅咒。%3%2%1%*SHIFT

于 2013-04-22T13:50:50.127 回答
10

%*展开为传递给脚本的完整参数列表。

当您想调用其他程序或脚本并传递与您的脚本相同的参数时,通常会使用它。

于 2013-04-22T10:22:49.797 回答
5

修饰符是一个唯一的%*修饰符,表示批处理文件中传递的所有参数。您不能将此修饰符与%~修饰符结合使用。%~语法必须由有效的参数值终止。

来源:

于 2013-04-22T10:24:44.303 回答