【问题标题】:Forwarding all batch file parameters to inner command将所有批处理文件参数转发到内部命令
【发布时间】:2012-07-23 03:54:23
【问题描述】:

为了我在 Windows 中的舒适度,我想准备一些像在 Unix 中一样启动的 PHP 工具。

例如:composer create-project symfony/framework-standard-edition path/

不是:php composer.phar create-project symfony/framework-standard-edition path/

我在系统路径目录中制作了 composer.bat 文件:

php C:\path\to\composer\composer.phar

它的工作原理很简单。 但是如何将所有参数和标志转发到命令里面呢?

【问题讨论】:

    标签: windows batch-file automation


    【解决方案1】:

    在你的批处理文件composer.bat中,简单地说:

    php C:\path\to\composer\composer.phar %*
    

    【讨论】:

    • composer.bat "^^" 失败并吞下所有插入符号!
    • 在我使用默认命令提示符的机器上并非如此。插入符号被传递到下一个脚本。
    • 你是对的 - 只有通过 execv 或类似方式调用时才会出现问题
    • @Eric 所以这可能是一个正确的escaping the arguments 问题,而不是这个原始问题的问题(并且反对票似乎有点苛刻......)。但我刚刚看到有人在你的问题中指出了这一点。
    【解决方案2】:

    windows 为您提供%* 以引用所有参数。

    您的新 composer.bat 文件将变为
    php C:\path\to\composer\composer.phar %*

    【讨论】:

    • 我只是把它放在一起,将一个 Windows NT 命令脚本(一个 .CMD 文件)与一个标准桌面快捷方式结合起来,该快捷方式的工作目录(start in)属性设置为项目根目录的名称.这是一个真正的“动态”脚本语言的 PITA,但我有一个可以忍受的解决方案。
    猜你喜欢
    • 2023-03-11
    • 2015-07-06
    • 2015-08-30
    • 2017-07-24
    • 1970-01-01
    • 2019-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多