Ho bisogno di exec il seguente comando da formica, ma non riesco a capire come sfuggire le virgolette doppie:Come posso evitare le doppie virgolette nella formica?
tasklist /FI "IMAGENAME eq java.exe" /FI "MEMUSAGE gt 50000"
Ho bisogno di exec il seguente comando da formica, ma non riesco a capire come sfuggire le virgolette doppie:Come posso evitare le doppie virgolette nella formica?
tasklist /FI "IMAGENAME eq java.exe" /FI "MEMUSAGE gt 50000"
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.
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.
Questo è quello che ho provato inizialmente, non ha funzionato –
Ant utilizza XML, in modo da poter utilizzare le normali entità XML come "
:
tasklist /FI "IMAGENAME eq java.exe" /FI "MEMUSAGE gt 50000"
Questa dovrebbe essere la risposta accettata, dal momento che la risposta di David W. funziona solo intorno alla questione attuale. –
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.
Lo script Ant è xml. Quindi in xml, ecco la regola.
Per> utilizzare >
Per < uso <
per “uso "
Per & uso &
per‘utilizzare '
Avviso! ";"
Riferimento:
Penso che questo dovrebbe essere contrassegnato come la risposta corretta per la domanda – alseether
La risposta non corrisponde al titolo della domanda. – cmcginty
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. –