jak zidentyfikować proces dla pliku wsadowego uruchamianego przez vbscript

1

Skorzystałem z tego forum, aby dowiedzieć się, jak uruchomić plik wsadowy tomcat w trybie cichym / ukrytym za pomocą vbscript. Użyłem kodu:

Set oShell = CreateObject("Wscript.Shell") 
Dim strArgs
strArgs = "%CATALINA_HOME%\bin\catalina.bat run"
oShell.Run strArgs, 0, false

Nie mogę jednak wymyślić, jak zatrzymać ten proces, ponieważ nie mogę go zidentyfikować w menedżerze zadań. Jak mogę zidentyfikować proces przebiegający w ten sposób?

Kunal
źródło
jakieś szczęście szuka w kolumnie „linia poleceń” w menedżerze zadań? wypróbuj opcje… wybierz kolumny, jeśli nie ma
barlop

Odpowiedzi:

2

Z nieco zmodyfikowanym skryptem (ponieważ nie wiem, czy %CATALINA_HOME%zawiera spację):

Set oShell = CreateObject("Wscript.Shell")
Dim strArgs
strArgs = """%CATALINA_HOME%\bin\catalina.bat"" run"
oShell.Run strArgs, 0, false

use (z okna interpretera wiersza poleceń)

wmic process where "name='cmd.exe'" get CommandLine, ProcessId

a następnie zawęź wyniki w następujący sposób:

wmic process where "name='cmd.exe'" get CommandLine, ProcessId|findstr "catalina"

Wmicdane wyjściowe można analizować za pomocą for /Fpolecenia. Zobacz Dave'a Benhama WMICi FOR /F: Rozwiązanie <CR>problemu z końcem .

Edit . W następnym fragmencie kodu jest on po prostu echo taskkillzamiast operacyjny taskkill; uwaga %jest również podwojona w zapytaniu WQL (SQL for WMI), ponieważ %%(uniknął specjalnego znaczenia w interfejsie CLI systemu Windows):

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  
    )
JosefZ
źródło
Dzięki Josef. ok, więc to działało dla mnie. Otrzymuję dane wyjściowe jako - C: \ Windows \ system32 \ cmd.exe / c "": C: \ apache-tomcat-7.0.57 \ bin \ catalina.bat "run" 4516. Muszę wyodrębnić PID z tego ciągu. Próbowałem użyć FOR / F do wyodrębnienia PID z tego wyjścia, ale nie udało mi się go uruchomić. Jakieś wskazówki, proszę?
Kunal