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
)