【问题标题】:What does %* mean in a batch file?%* 在批处理文件中是什么意思?
【发布时间】:2013-04-22 10:21:36
【问题描述】:

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

谁能举例说明%*的典型用法?

【问题讨论】:

  • 这能回答你的问题吗? What does %* mean?
  • @phuclv 我真的认为重复的目标方向应该颠倒。这个问题似乎比您链接的问题更规范。

标签: windows batch-file cmd


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

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

        来源:

        【讨论】:

        • 链接已断开。
        • 我添加了一个指向该页面存档版本的链接。请注意,该文档是指 Windows XP。 Windows 10 可能有不同的修饰符
        猜你喜欢
        • 2013-09-23
        • 2010-09-11
        • 2013-05-14
        • 1970-01-01
        • 2023-03-24
        • 2021-11-03
        • 2012-01-19
        • 2013-03-11
        相关资源
        最近更新 更多