« バッチファイルで、dllのアイコンをインデックスで一覧表示する。 | トップページ | バッチファイルでコンソールウィンドウのタイトルを取得する。 »

2009年1月25日 (日)

バッチファイルでプロセスIDを取得する。

tasklist.exeを使って、コンソールウィンドウの所有プロセスのプロセスIDを調べます。

GetPID.CMD

@echo off
for /f "tokens=2 delims=," %%i in ('title @@@^&tasklist /v /fo csv /nh /fi "windowtitle eq @@@"') do echo %%~i

厳密には、コンソールウィンドウの所有プロセスは、そのバッチファイルを実行中のシェルプロセスとは限りません。その親や御先祖かも知れません。

コンソールウィンドウのタイトルを一時的に変えて、そのタイトルのウィンドウの所有プロセスのプロセスIDを調べます。
サブシェルでタイトルを変えた場合は、元のタイトルに戻ります。

« バッチファイルで、dllのアイコンをインデックスで一覧表示する。 | トップページ | バッチファイルでコンソールウィンドウのタイトルを取得する。 »