2011-09-12 11 views

Respuesta

18

No creo que realmente lo hace si se utiliza <arg value> y no <arg line>:

lista de tareas/FI " ImageName eq java.exe"/ FI "50000 MEMUSAGE gt"

<exec executable="tasklist"> 
    <arg value="/FI"/> 
    <arg value="IMAGENAME eq java.exe"/> 
    <arg value="/FI"/> 
    <arg value="MEMUSAGE gt 50000"/> 
</exec> 

a pesar de los espacios, la <arg value> lo enviará como una sola p arameter al comando. A menos que el comando requiera citas, esto debería funcionar.

+4

La respuesta no coincide con el título de la pregunta. – cmcginty

+0

cierto. Esto no responde a la pregunta de la forma en que OP lo deseaba. Pero, usando '', OP ya no necesita las comillas. Las citas fueron para mantener los parámetros con espacios juntos. Esto hace lo mismo. Si necesita un presupuesto, debe usar '"' que no es tan elegante. –

2

Este es un ejemplo http://ant.apache.org/faq.html#shell-redirect-2. Simplemente use comillas simples como separador de parámetros xml. De esta forma, puedes usar comillas dobles dentro de los argumentos.

+0

Eso es lo que he intentado en un principio, no funcionó –

55

hormiga utiliza XML, para que pueda utilizar las entidades XML normales como &quot;:

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

Esta debe ser la respuesta aceptada, ya que la respuesta de David W. sólo funciona en torno a la cuestión real. –

7

Pero no funciona si es necesario utilizar el comando find DOS en una tarea /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> 

da,

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 

Es como si ANT elimina las dobles comillas alrededor del parámetro cuando se pasa al interpereter CMD. La ayuda para la función de búsqueda de DOS dice que necesita utilizar comillas dobles para el texto que está buscando.

14

Ant script es xml. Entonces en xml, aquí está la regla.

Para> utilizar &gt;

Para < uso &lt;

para “uso &quot;

Para & uso &amp;

Para‘utilizar &apos;

Aviso! ";"

Referencia:

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

+0

Creo que esto debería marcarse como la respuesta correcta para la pregunta – alseether

Cuestiones relacionadas