muszę exec następujące polecenie z ant, ale nie mogę dowiedzieć się, jak uciec podwójnie cytaty:Jak mogę uniknąć podwójnych cudzysłowów w mrówce?
tasklist /FI "IMAGENAME eq java.exe" /FI "MEMUSAGE gt 50000"
muszę exec następujące polecenie z ant, ale nie mogę dowiedzieć się, jak uciec podwójnie cytaty:Jak mogę uniknąć podwójnych cudzysłowów w mrówce?
tasklist /FI "IMAGENAME eq java.exe" /FI "MEMUSAGE gt 50000"
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ć.
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.
To co próbowałem początkowo nie działał –
Ant używa XML, dzięki czemu można używać normalnych podmioty XML jak "
:
tasklist /FI "IMAGENAME eq java.exe" /FI "MEMUSAGE gt 50000"
powinno to być zaakceptowane odpowiedź, ponieważ odpowiedź David W. działa tylko wokół aktualnej kwestii. –
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.
Skrypt Ant to xml. Tak więc w xml, tu jest reguła.
Dla> użyj >
Dla < użytku <
do „użytkowania "
Dla & użytku &
do„użytkowania '
Uwaga! ";"
referencyjny:
Myślę, że należy to zaznaczyć jako właściwą odpowiedź na pytanie – alseether
Odpowiedź nie pasuje do tytułu pytania. – cmcginty
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. –