2011-09-12 12 views

risposta

18

Non credo davvero fare se si utilizza <arg value> e non <arg line>:

tasklist/FI " nomeimmagine 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> 

Nonostante gli spazi, il <arg value> lo invierà come un unico p arameter al comando. A meno che il comando stesso non richieda virgolette, questo dovrebbe funzionare.

+4

La risposta non corrisponde al titolo della domanda. – cmcginty

+0

Vero. Questo non risponde alla domanda nel modo in cui l'OP voleva. Ma usando '', l'OP non ha più bisogno delle virgolette. Le virgolette dovevano mantenere i parametri con gli spazi insieme. Questo fa la stessa cosa Se hai bisogno di un preventivo, devi usare '"' che non è elegante. –

2

Ecco un esempio http://ant.apache.org/faq.html#shell-redirect-2. Basta usare le virgolette singole come separatore dei parametri xml. In questo modo è possibile utilizzare liberamente le virgolette doppie all'interno degli argomenti.

+0

Questo è quello che ho provato inizialmente, non ha funzionato –

55

Ant utilizza XML, in modo da poter utilizzare le normali entità XML come &quot;:

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

Questa dovrebbe essere la risposta accettata, dal momento che la risposta di David W. funziona solo intorno alla questione attuale. –

7

ma non funziona se è necessario utilizzare il comando find DOS in un compito /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> 

dà,

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 

E 'come se ANT elimina le virgolette attorno al parametro quando viene passato all'interoperatore CMD. L'aiuto per la funzione DOS find dice che devi usare le virgolette doppie per il testo che stai cercando.

14

Lo script Ant è xml. Quindi in xml, ecco la regola.

Per> utilizzare &gt;

Per < uso &lt;

per “uso &quot;

Per & uso &amp;

per‘utilizzare &apos;

Avviso! ";"

Riferimento:

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

+0

Penso che questo dovrebbe essere contrassegnato come la risposta corretta per la domanda – alseether

Problemi correlati