С немного измененным сценарием (поскольку я не знаю , содержит ли %CATALINA_HOME%
пробел):
Set oShell = CreateObject("Wscript.Shell")
Dim strArgs
strArgs = """%CATALINA_HOME%\bin\catalina.bat"" run"
oShell.Run strArgs, 0, false
использовать (из окна интерпретатора командной строки)
wmic process where "name='cmd.exe'" get CommandLine, ProcessId
и затем сузьте вывод следующим образом:
wmic process where "name='cmd.exe'" get CommandLine, ProcessId|findstr "catalina"
Wmic
выход может быть проанализирован с помощью команды for /F
См. WMIC
и FOR /F
Дейва Бенхэма : исправление проблемы с трейлингом <CR>
.
Редактировать В следующем фрагменте кода есть просто echo taskkill
вместо оперативного taskkill
; Также обратите внимание, что %
удваивается в запросе WQL (SQL для WMI) как %%
(исключено из специального значения в 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
)