Мне нужно выполнить следующую команду из ant, но я не могу понять, как избежать двойных кавычек:
tasklist /FI "IMAGENAME eq java.exe" /FI "MEMUSAGE gt 50000"
Мне нужно выполнить следующую команду из ant, но я не могу понять, как избежать двойных кавычек:
tasklist /FI "IMAGENAME eq java.exe" /FI "MEMUSAGE gt 50000"
Я не верю, что вы действительно это делаете, если используете <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>
Несмотря на пробелы, <arg value>
отправит его в качестве одного параметра в команду. Если сама команда не требует котировок, это должно работать.
Ant использует XML, поэтому вы можете использовать обычные XML-объекты, такие как "
:
tasklist /FI "IMAGENAME eq java.exe" /FI "MEMUSAGE gt 50000"
Ant script - xml. Итак, в xml, вот правило.
Для > используйте >
используйте <
Для использования "
Для использования и использования &
Для использования '
Обратите внимание! ";"
Ссылка:
Но не работает, если вам нужно использовать команду find
DOS в задаче /CMD exec
:
<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>
дает
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
Это похоже на то, что ANT
удаляет двойные кавычки вокруг параметра, когда он передается в интерпометр CMD. Справка для функции поиска DOS говорит, что вам нужно использовать двойные кавычки для текста, который вы ищете.
Вот пример http://ant.apache.org/faq.html#shell-redirect-2. Просто используйте одинарные кавычки как разделитель параметров xml. Таким образом, вы можете свободно использовать двойные кавычки внутри аргументов.