Dengan skrip yang sedikit dimodifikasi (seperti saya tidak tahu apakah %CATALINA_HOME% berisi spasi):
Set oShell = CreateObject("Wscript.Shell")
Dim strArgs
strArgs = """%CATALINA_HOME%\bin\catalina.bat"" run"
oShell.Run strArgs, 0, false
gunakan (dari jendela juru bahasa baris perintah)
wmic process where "name='cmd.exe'" get CommandLine, ProcessId
dan kemudian mempersempit output sebagai berikut:
wmic process where "name='cmd.exe'" get CommandLine, ProcessId|findstr "catalina"
Wmic output dapat diuraikan dengan for /F perintah. Lihat Dave Benham WMIC dan FOR /F: Perbaikan untuk trailing <CR> masalah .
Edit . Dalam cuplikan kode berikutnya, hanya ada echo taskkill bukannya operasional taskkill; juga mencatat % digandakan WQL (SQL untuk WMI) kueri sebagai %% (lolos itu makna khusus di 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
)