我需要从ant执行以下命令,但我无法弄清楚如何转义双引号:
tasklist /FI "IMAGENAME eq java.exe" /FI "MEMUSAGE gt 50000"
Run Code Online (Sandbox Code Playgroud)
Mic*_*zek 62
Ant使用XML,因此您可以使用普通的XML实体,例如":
tasklist /FI "IMAGENAME eq java.exe" /FI "MEMUSAGE gt 50000"
Run Code Online (Sandbox Code Playgroud)
Dav*_* W. 20
如果你使用<arg value>而我不相信你真的这样做<arg line>:
任务列表/ FI"IMAGENAME eq java.exe"/ FI"MEMUSAGE gt 50000"
<exec executable="tasklist">
<arg value="/FI"/>
<arg value="IMAGENAME eq java.exe"/>
<arg value="/FI"/>
<arg value="MEMUSAGE gt 50000"/>
</exec>
Run Code Online (Sandbox Code Playgroud)
尽管有空格,但<arg value>它会将它作为单个参数发送给命令.除非命令本身需要引号,否则这应该有效.
小智 20
Ant脚本是xml.所以在xml中,这是规则.
用于>使用 >
对于<使用 <
用来 "
用来 &
用来 '
注意!";"
参考:
http://www.jguru.com/faq/view.jsp?EID=721755
小智 7
但是如果您需要find在/CMD exec任务中使用DOS命令,则无效:
<target name="install" depends="install2">
<exec executable="cmd.exe" outputproperty="result.process">
<arg line='/c tasklist | find "httpd"'/>
</exec>
<echo message="RESULT: ${result.process}" />
</target>
Run Code Online (Sandbox Code Playgroud)
给,
install:
[exec] Current OS is Windows 7
[exec] Output redirected to property: result.process
[exec] Executing 'cmd.exe' with arguments:
[exec] '/c'
[exec] 'tasklist'
[exec] '|'
[exec] 'find'
[exec] 'httpd'
[exec]
[exec] The ' characters around the executable and arguments are
[exec] not part of the command.
[exec] Result: 2
[echo] RESULT: FIND : format incorrect de paramètre
Run Code Online (Sandbox Code Playgroud)
ANT它就像是在传递给CMD interpereter时删除参数周围的双引号.查找DOS函数的帮助说你需要为你正在寻找的文本使用双引号.