cara mengidentifikasi proses untuk file batch dijalankan melalui vbscript

1

Saya menggunakan forum ini untuk mencari tahu cara menjalankan file batch kucing jantan diam-diam / disembunyikan menggunakan vbscript. Kode yang saya gunakan adalah ini:

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

Namun, saya tidak bisa menemukan cara untuk menghentikan proses ini karena saya tidak bisa mengidentifikasi itu di task manager. Bagaimana saya bisa mengidentifikasi proses yang dijalankan dengan cara ini?

Kunal
sumber
ada keberuntungan yang terlihat di kolom "command line" di task manager? coba opsi..pilih kolom, jika tidak ada
barlop

Jawaban:

2

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  
    )
JosefZ
sumber
Terima kasih Josef. ok, jadi itu bekerja untuk saya. Saya mendapatkan output sebagai - C: \ Windows \ system32 \ cmd.exe / c "" C: \ apache-tomcat-7.0.57 \ bin \ catalina.bat "run" 4516. Saya perlu mengekstrak PID dari string ini. Saya telah mencoba menggunakan FOR / F untuk mengekstrak PID dari output ini tetapi belum dapat membuatnya berfungsi. Ada petunjuk pls?
Kunal