【问题标题】:Windows 8: .phar files, how do you want to openWindows 8:.phar 文件,你想如何打开
【发布时间】:2013-10-25 04:08:40
【问题描述】:

我正在尝试使用 wamp 在 Windows 上运行 composer。我使用 cmd 提示符安装了作曲家,现在我正在尝试为 SDK 运行“作曲家更新”。但是,当我输入“composer.phar update”时,windows 会询问我想用什么应用程序来运行这个程序。我希望命令提示符处理它!我如何只通过 cmd 运行它,而不会出现这个“什么应用程序”窗口?

【问题讨论】:

    标签: php cmd composer-php wamp


    【解决方案1】:

    可以将php *.phar 换成*.bat,那么文件名就是CLI 命令的名称:

    @ECHO OFF
    php "C:/Program Files/PHAR/phpDocumentor.phar" %*
    

    也可以使用这样的包装来传递默认参数;例如。 wp.bat:

    @ECHO OFF
    php "C:/Program Files/PHAR/wp-cli.phar" --path="D:/SDK/wordpress" %*
    

    模式%* 将捕获并转发 CLI 参数,正如它应该做的那样。
    与此类似,可以像任何其他 CLI 命令一样在终端窗口中运行 phar

    【讨论】:

      【解决方案2】:

      保持简单。与其更改 .phar 的默认程序(这在 Windows 中并不总是那么容易),不如尝试在命令前输入“php”。

      php composer.phar update
      

      【讨论】:

        【解决方案3】:

        .phar 代表 PHP 存档

        通常.phars 带有一些参数,因此它们旨在从命令提示符运行。 Linux/BSD/OS X shell 或 Windows 命令提示符。

        Linux .phar 用例场景假设 .phars 被复制到某个 /bin 并重命名为不带 .phar 扩展名,因此您可以像使用任何其他 linux 命令一样使用 php 存档。所以我推荐以下方式在 Windows 上做同样的事情:

        1. 把你所有的.phar文件放到一个目录,比如C:\php\phars
        2. 在系统环境变量中添加C:\php\phars(右键我的Computer -> Properties -> Advanced System Settings -> Environment variables
        3. 启动提升的命令提示符(在开始菜单中找到命令提示符然后右键单击并选择Run as Administrator
        4. 键入以下命令,将路径 C:\phpdev\php\php542\php.exe 替换为 PHP 可执行文件的完整路径:
        ftype PHARFile=C:\phpdev\php\php542\php.exe "%1" %*
        assoc .phar=PHARFile
        set PATHEXT=%PATHEXT%;.PHAR
        

        下次你应该能够运行 Windows 控制台(键盘 Win+R 并输入 cmd.exe)并输入任何你喜欢的 .phar apigen.phar 后跟任何命令,它将起作用

        C:\Users\acosonic>apigen.phar help
        Usage:
        ...
        
        Arguments:
         command        The command to execute
         command_name   The command name (default: "help")
        
        Options:
         --xml          To output help as XML
         --format       To output help in other formats (default: "txt")
         --raw          To output raw command help
         --help (-h)    Display this help message.
         --quiet (-q)   Do not output any message.
         --version (-V) Display this application version.
        
        Help:
         The help command displays help for a given command:
        
           php C:\phpdev\phars\apigen.phar help list
        
         You can also output the help in other formats by using the --format option:
        
           php C:\phpdev\phars\apigen.phar help --format=xml list
        
         To display the list of available commands, please use the list command.
        
        C:\Users\acosonic>
        

        因此,这种方式可以让您在需要工作的目录中运行 .phar 存档,例如在 C:\myproject\controller 中生成文档而不指定 .phar 的完整路径,就好像它在不将其添加到 Windows 的情况下运行一样路径。

        解释第 4 步中的命令做了什么:

        1. 已创建映射 HKCR.phar → HKCR\PHARFile
        2. 已创建 HKCR\PHARFile\shell\open\command = 'php.exe "%1" %*' [REG_EXPAND_SZ]
        3. 扩展 HKCU\Environment\PATHEXT = '%PATHEXT%;.PHAR' [REG_EXPAND_SZ]

        *.phar 被视为二进制/脚本,只要*.phar 文件位于%PATH% 中的任何位置,*.phar 就可以执行。

        【讨论】:

        • 无效:'phpunit-4.0.20.phar' 未被识别为内部或外部命令、可运行程序或批处理文件。
        • Johni 的方法似乎有效,我不知道是否需要这两种方法来获取 phar 的帮助。
        【解决方案4】:

        您必须将 php.exe 设置为 phar 文件的默认应用程序。

        【讨论】:

        • 只需右键单击文件>属性>更改>选择php.exe。
        猜你喜欢
        • 2022-10-05
        • 1970-01-01
        • 1970-01-01
        • 2015-12-20
        • 2013-07-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多