windows - 无法通过 Ant 运行 Windows 命令,但可以在 cmd.exe 上运行

标签 windows command-line ant service

我有一个要运行的 ant 宏;

<macrodef name="serviceTask">
    <attribute name="server"/>
    <attribute name="operation"/>
    <attribute name="service"/>
    <sequential>
        <echo message="sc \\@{server} @{operation} @{service}"/>
        <exec executable="sc.exe" failonerror="true">
            <arg line="\\@{server} @{operation} @{service}"/>
        </exec>
    </sequential>
</macrodef>

<target name="startTomcat">
    <echo message="Start Tomcat ${service} on ${server}"/>
    <serviceTask server="MyServer" operation="start" service="Tomcat8180"/>
</target>

但是我收到一个 RPC 错误:

startTomcat:
     [echo] Start Tomcat Tomcat8180 on pacdcdtadeva02
     [echo] sc \\pacdcdtadeva02 start Tomcat8180
     [exec] [SC] OpenSCManager FAILED 1722:
     [exec]
     [exec] The RPC server is unavailable.
     [exec]

stopTomcat:
     [echo] Stop Tomcat Service Tomcat8180 on pacdcdtadeva02
     [echo] sc \\pacdcdtadeva02 stop Tomcat8180
     [exec] [SC] OpenSCManager FAILED 1722:
     [exec]
     [exec] The RPC server is unavailable.
     [exec]
     [echo] -------------------------------------------------------------------
     [echo] --- Completed on 02/01/2011 05:11:42 PM
     [echo] -------------------------------------------------------------------

现在当我从命令行运行它时

sc \\stage01 start Tomcat8180

服务启动/停止

C:\usr\svn_workspaces\xIVR\agent-ivr>sc \\stage01 start Tomcat8180

SERVICE_NAME: Tomcat8180
        TYPE               : 10  WIN32_OWN_PROCESS
        STATE              : 2  START_PENDING
                                (NOT_STOPPABLE,NOT_PAUSABLE,IGNORES_SHUTDOWN)
        WIN32_EXIT_CODE    : 0  (0x0)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x1
        WAIT_HINT          : 0xbb8
        PID                : 11228
        FLAGS              :

最佳答案

也许这需要一个shell环境。试试 cmd/c sc ...

怎么样?
<exec executable="cmd.exe" failonerror="true">
    <arg line="/c sc \\@{server} @{operation} @{service}"/>
</exec>

关于windows - 无法通过 Ant 运行 Windows 命令,但可以在 cmd.exe 上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4868758/

相关文章:

Ant if :true. 将属性设置为 true 不会导致任务执行

java - 我如何将信息从 ant 传递到 sql 文件或过程

c++ - Cygwin+ eclipse : How does one hide a console window in n OpengGL based program by without getting unrecognized emulation mode error?

windows - 使用记事本打开所有 .cmd 文件

php - Shell 命令适用于命令行,但不适用于 PHP exec

python - 如何防止命令窗口在程序执行完毕后关闭

linux - "EXTRA_NVCCFLAGS=--cudart=shared"命令

eclipse - 如何在Spring Source Tools Suite (STS)/eclipse中安装ivy

c++ - 无法在Windows上构建PROJ-sqlite3的链接器错误

windows - 更改 PCF Dev 安装位置