थोड़ी संशोधित स्क्रिप्ट के साथ (जैसा कि मुझे नहीं पता कि %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 (WMI के लिए SQL) क्वेरी के रूप %में दोगुना है (%% विंडोज सीएलआई में इसका विशेष अर्थ है बच गया):
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
)