1. ホーム
  2. windows

[解決済み] プロセスIDからプロセス名を検索する【終了しました

2023-07-15 09:16:23

質問

プロセスIDがわかったとします。 Windowsのバッチスクリプトを使用して、そのIDからプロセス名を見つけたいのです。 どうすればよいのでしょうか?

どのように解決するのですか?

基本は、タスクリストの出力をフィルタリングして、指定されたプロセスIDの情報のみを表示するようにする。

tasklist /fi "pid eq 4444" 

プロセス名のみを取得するには、行を分割する必要があります。

for /f "delims=," %%a in ('
    tasklist /fi "pid eq 4444" /nh /fo:csv
') do echo %%~a

この場合、プロセスの一覧はヘッダなしで取得されます ( /nh ) csv 形式で取得されます ( /fo:csv ). カンマはトークンの区切り文字として使われ、行の最初のトークンが画像名となります

ノート : いくつかの Windows バージョン (私の場合は、スペイン語の Windows xp バージョン) では、タスクリストでの pid フィルタが機能しません。この場合、プロセスのリストに対するフィルタリングは、コマンド

for /f "delims=," %%a in ('
    tasklist /fo:csv /nh ^| findstr /b /r /c:"[^,]*,\"4444\","
') do echo %%~a

これはタスクリストを生成し、csv出力の2列目にあるプロセスIDを検索してフィルタリングします。

編集済み

あるいは、OS をスペイン語に翻訳したチームによって作られたものと考えることもできます。他のロケールではどうなるかは分かりませんが。

tasklist /fi "idp eq 4444"