WScript.Shell などを使用して、最後に開始されたプロセスの Windows PID を取得する方法を教えてください。
プロセスを開始してその PID を取得する方法は知っています:
Set oExec = WshShell.Exec( program )
Set pid = oExec.ProcessID
ここで問題となるのは、プログラムが別のバッチ (または VBScript の可能性がある) であることです。バッチは、PID を取得したい実際のプログラムを開始します。
Linux(シェルスクリプト)では、非常に簡単に実行できます。pid=$!
しかし、Windows では何ができるのでしょうか?
答え1
Windows には $! に相当するものはないと思います。
3番目のプロセスのPIDを取得したい場合は、WMIを使用して検索することができます。この例は次のようになります。ここ(情報を検索して表示するだけ)またはここ(プロセスを検索して強制終了します)。
3番目の名前の実行ファイルが不明な場合は、ジョブオブジェクトこれは複数のプロセスを1つのオブジェクトにグループ化します。そして、これらを一度にすべて終了させるには、ジョブオブジェクトの終了。
見るマイクロソフト簡単な概要を見るにはStackOverflowのこの質問。
ただし、これらのメソッドを VBScript から使用できるかどうかはわかりません。