2011-09-12 16 views

Odpowiedz

18

Nie wierzę naprawdę zrobić jeśli używasz <arg value> i nie <arg line>:

tasklist/FI " imageName równoważnika 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> 

Pomimo spacje, <arg value> wyśle ​​go jako pojedynczy str do polecenia. O ile samo polecenie nie wymaga wyceny, powinno to działać.

+4

Odpowiedź nie pasuje do tytułu pytania. – cmcginty

+0

Prawda. To nie odpowiada na pytanie, w jaki sposób OP chciał. Ale, używając '', OP nie potrzebuje już cytatów. Cytaty miały przechowywać parametry razem ze spacjami. To robi to samo. Jeśli potrzebujesz wyceny, musisz użyć '"' która nie jest tak elegancka. –

2

Oto przykład http://ant.apache.org/faq.html#shell-redirect-2. Po prostu użyj pojedynczych cudzysłowów jako separatora parametrów xml. W ten sposób możesz swobodnie używać podwójnych cudzysłowów wewnątrz argumentów.

+0

To co próbowałem początkowo nie działał –

55

Ant używa XML, dzięki czemu można używać normalnych podmioty XML jak &quot;:

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

powinno to być zaakceptowane odpowiedź, ponieważ odpowiedź David W. działa tylko wokół aktualnej kwestii. –

7

ale nie działa, jeśli trzeba użyć komendy find DOS w /CMD exec zadania:

<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> 

daje,

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 

jego jak gdyby ANT usuwa cudzysłowie parametr kiedy zostanie przekazany do interpretera CMD. Pomoc dla funkcji Znajdź w DOSie wymaga użycia podwójnego cudzysłowu dla szukanego tekstu.

14

Skrypt Ant to xml. Tak więc w xml, tu jest reguła.

Dla> użyj &gt;

Dla < użytku &lt;

do „użytkowania &quot;

Dla & użytku &amp;

do„użytkowania &apos;

Uwaga! ";"

referencyjny:

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

+0

Myślę, że należy to zaznaczyć jako właściwą odpowiedź na pytanie – alseether

Powiązane problemy