Com um script ligeiramente modificado (como não sei se %CATALINA_HOME%
contém um espaço):
Set oShell = CreateObject("Wscript.Shell")
Dim strArgs
strArgs = """%CATALINA_HOME%\bin\catalina.bat"" run"
oShell.Run strArgs, 0, false
use (da janela do interpretador de linha de comando)
wmic process where "name='cmd.exe'" get CommandLine, ProcessId
e, em seguida, reduza a saída da seguinte forma:
wmic process where "name='cmd.exe'" get CommandLine, ProcessId|findstr "catalina"
Wmic
output pode ser analisado com o comando for /F
. Veja WMIC
e FOR /F
de Dave Benham: uma correção para o% final<CR>
problem .
Editar . No próximo trecho de código, há apenas echo taskkill
em vez de operacional taskkill
; Observe também que %
é dobrado em WQL (SQL para WMI) consulta como %%
(escapou seu significado especial no Windows CLI):
for /F "usebackq tokens=*" %%G in (
'wmic process where "CommandLine like '%%catalina.bat%%' AND Caption like '%%cmd.exe%%'" get ProcessID/value ^|find /I "="'
) do (
for /F "tokens=2 delims==" %%H in ("%%~G") do echo taskkill /T /F /PID %%H
)