$1 の Windows 版 (最後に開始されたプロセスの PID)

$1 の Windows 版 (最後に開始されたプロセスの PID)

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 から使用できるかどうかはわかりません。

関連情報