2011-09-12 31 views

Trả lời

18

Tôi không tin rằng bạn thực sự làm gì nếu bạn sử dụng <arg value> và không <arg line>:

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

Mặc dù không gian, các <arg value> sẽ gửi nó như là một p đơn tham số cho lệnh. Trừ khi lệnh yêu cầu báo giá, điều này sẽ hoạt động.

+4

Câu trả lời không khớp với tiêu đề câu hỏi. – cmcginty

+0

Đúng. Điều này không trả lời câu hỏi theo cách mà OP muốn. Nhưng, bằng cách sử dụng '', OP không còn cần dấu ngoặc kép nữa. Các dấu ngoặc kép là để giữ cho các thông số với không gian với nhau. Điều này cũng giống vậy. Nếu bạn cần báo giá, bạn cần sử dụng '"' không thanh lịch. –

2

Dưới đây là một ví dụ http://ant.apache.org/faq.html#shell-redirect-2. Đơn giản chỉ cần sử dụng dấu nháy đơn làm dấu tách tham số xml. Bằng cách này bạn có thể tự do sử dụng dấu ngoặc kép bên trong các đối số.

+0

Đó là những gì tôi đã cố gắng ban đầu, nó đã không làm việc –

55

Ant sử dụng XML, vì vậy bạn có thể sử dụng các đối tượng XML bình thường như &quot;:

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

này nên là câu trả lời được chấp nhận, vì câu trả lời của David W. chỉ hoạt động xung quanh câu hỏi thực tế. –

7

Nhưng không hoạt động nếu bạn cần phải sử dụng find lệnh DOS trong một nhiệm vụ /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> 

cho,

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 

của nó như thế nào nếu ANT xóa các dấu ngoặc kép quanh tham số khi nó được truyền đến bộ xen kẽ CMD. Trợ giúp cho chức năng tìm DOS cho biết bạn cần phải sử dụng dấu ngoặc kép cho văn bản bạn đang tìm kiếm.

14

Tập lệnh kiến ​​là xml. Vì vậy, trong xml, đây là quy tắc.

Đối> sử dụng &gt;

Đối < sử dụng &lt;

Đối với “sử dụng &quot;

Đối & sử dụng &amp;

Đối với‘sử dụng &apos;

Thông báo! ";"

tham khảo:

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

+0

Tôi nghĩ điều này nên được đánh dấu là câu trả lời đúng cho câu hỏi – alseether

Các vấn đề liên quan