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
)