首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >php文件从命令行使用ant - windows

php文件从命令行使用ant - windows
EN

Stack Overflow用户
提问于 2014-10-30 16:29:17
回答 1查看 604关注 0票数 2

我正在尝试运行一个ant脚本,它被设置为执行各种php模块。

代码语言:javascript
复制
<target name="phploc" description="Measure project size using PHPLOC">
  <exec executable="${basedir}/build/tools/phploc.phar">
   <arg value="--count-tests" />
   <arg path="${basedir}/src" />
   <arg path="${basedir}/tests" />
  </exec>
 </target>

但是,它会失败,并显示错误"%1不是有效的Win32应用程序“

我已经执行了这里描述的注册表调整...http://php.net/manual/en/install.windows.commandline.php

也为phar重复了这些步骤。如果我打开一个命令窗口,我可以通过输入文件名来执行php或phar文件,例如phploc.phar,而不是完整的php.exe phploc.phar,但是它不能通过ant工作。

如果我将ant文件更改为:

代码语言:javascript
复制
 <target name="phploc" description="Measure project size using PHPLOC">
  <exec executable="php">
   <arg line="${basedir}/build/tools/phploc.phar --count-tests" />
   <arg path="${basedir}/src" />
   <arg path="${basedir}/tests" />
  </exec>
 </target>

一切都很好,因为我猜它会被转换成php.exe /build/tools/phploc.phar (或者类似的东西)。

构建文件来自其他人的项目,我已经通过git克隆了它,所以理想情况下我不想更改它。

所以我想我不明白为什么它是通过命令行工作的(例如,认识到.php .phar是可执行的),而不是通过ant。有什么关系呢?

谢谢!

注:我在一台用作构建服务器(jenkins)的windows机器上安装了php standalone (没有apache)。路径已更改为包含php目录。

EN

回答 1

Stack Overflow用户

发布于 2014-12-03 19:11:11

Windows *.bat文件必须通过cmd运行。将您的示例更改为:

代码语言:javascript
复制
<target name="phploc" description="Measure project size using PHPLOC">
    <exec executable="cmd">
        <arg value="/c"/>
        <arg value="${basedir}/build/tools/phploc"/>
        <arg value="--count-tests" />
        <arg path="${basedir}/src" />
        <arg path="${basedir}/tests" />
    </exec>
</target>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26648197

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档