psexec:带双引号的参数行

时间:2014-07-17 09:56:15

标签: ant psexec

我需要通过.bat在远程PC上启动psexec文件。远程电脑设有 usr pwd

usr= username 
pwd= password"123

cmd中工作正常,只需在\前面加"即可 (psexec \\remote-pc -d -u username -p password\"123

但重点是我在 build.xml 中定义了这个arg行,并且我无法使用ANT启动它。
我尝试使用"更改"以及我找到的其他内容,但没办法。

任何想法?也许它更容易更改我的机器的 pwd :-)

谢谢你!

1 个答案:

答案 0 :(得分:2)

根据经验,使用1-n嵌套的arg值元素而不是arg line,
请参阅ant manual commandline arguments
将你的arg行分成几个arg值...应该有效,见:

<exec executable="c:\pstools\psexec.exe">
 <arg value="\\hostname"/>
 <arg value="/accepteula"/>
 <arg value="cmd"/>
 <arg value="/c"/>
 <arg value="echo"/>
 <arg value="password&quot;123"/>
</exec>

输出:

[exec] PsExec v1.98 - Execute processes remotely
[exec] Copyright (C) 2001-2010 Mark Russinovich
[exec] Sysinternals - www.sysinternals.com
[exec] cmd exited with error code 0.

而::

<exec executable="c:\pstools\psexec.exe">
 <arg line="\\hostname /accepteula cmd /c echo password&quot;123"/>
</exec>

输出:

BUILD FAILED
.. unbalanced quotes in \\hostname /accepteula cmd /c echo password"123