プログラミング

Windowsでプログラムが開いているフォルダ・ファイルを取得

Windowsパソコンにおいて、あるソフトウェア・プログラムが開いている状態となっているフォルダ・ファイルを取得し、一覧する方法について紹介します。Powershellコマンドラインおよび拡張プログラムであるhandle64.exeを使用します。
例えば、atomやvscodeテキストエディタ、あるいはchromeブラウザなどで開かれている全てのファイルをプロセスID(PID)と一緒に出力します。

私の場合atomテキストエディタで開いているフォルダやファイルを取得したかったので、以下ではatomを一例として説明します。

Windowsを再起動せざるを得ない場合、Atomでどんなファイルやプロジェクトを開いていたか、わからなくなることがあります。
僕はいつも ファイル > 終了から終了させてから再起動をしていますが、これでも、正しく再起動されなかった場合、次回起動時にatomが全てのウィンドウをリバートしてくれるとは限りません。
8ウィンドウくらい開いてたのに、3ウィンドウしか復旧しなかったり…などザラです。

予め開いているファイルやプロジェクトを知ることができれば、最悪それらを把握できますし、手動で開くことも可能です。

handle64.exeを使用します。

DL:
Handle – Windows Sysinternals | Microsoft Docs

で、これでatomが開いているファイルが全てわかります。(powershell)

C:\Users\user\Desktop\Handle\handle64.exe -p atom.exe

ただ、これだと、出力が多すぎるので、実際にユーザーが開いたファイルだけを表示します。

Select-StringのPatternか、-Excludeを指定して無駄な出力を抑えます。

僕の場合は、基本的にAtomで開くフォルダが決まっているので、それらを指定します。

e.g. C:\Users\user\Desktop\Handle\handle64.exe -p atom.exe | Select-String -Pattern "pg|vm|note"

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です