Подтвердить что ты не робот

Как я могу избежать двойных кавычек в ant?

Мне нужно выполнить следующую команду из ant, но я не могу понять, как избежать двойных кавычек:

tasklist /FI "IMAGENAME eq java.exe" /FI "MEMUSAGE gt 50000"
4b9b3361

Ответ 1

Я не верю, что вы действительно это делаете, если используете <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> отправит его в качестве одного параметра в команду. Если сама команда не требует котировок, это должно работать.

Ответ 2

Ant использует XML, поэтому вы можете использовать обычные XML-объекты, такие как &quot;:

tasklist /FI &quot;IMAGENAME eq java.exe&quot; /FI &quot;MEMUSAGE gt 50000&quot;

Ответ 3

Ant script - xml. Итак, в xml, вот правило.

Для > используйте &gt;

используйте &lt;

Для использования &quot;

Для использования и использования &amp;

Для использования &apos;

Обратите внимание! ";"

Ссылка:

http://www.jguru.com/faq/view.jsp?EID=721755

Ответ 4

Но не работает, если вам нужно использовать команду 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 говорит, что вам нужно использовать двойные кавычки для текста, который вы ищете.

Ответ 5

Вот пример http://ant.apache.org/faq.html#shell-redirect-2. Просто используйте одинарные кавычки как разделитель параметров xml. Таким образом, вы можете свободно использовать двойные кавычки внутри аргументов.