web-dev-qa-db-ja.com

Windowsで特定のファイルタイプの標準実行可能ファイルのパスを検索する

cmdを実行していて、たとえばstart document.pdfと入力してアプリケーションを開いたとします。

.pdfファイルを開く実行可能ファイルの正確なパスを取得したい

もちろん、システム全体で実行可能ファイルを検索することもできますが、パスがすでにどこかに保存されているため、この方法の方が高速だと思います。

違いがあるかどうかはわかりませんが、Windows7を使用しています

2
gsmafra

悲しいことに、exeファイルの場所は通常、たとえばレジストリで定義されています。 「notepad ++」で開くように定義された.txtがあります。

したがって、ファイルの関連付けが何であるかを見つけるには、次の場所に移動する必要があります。

"Open Control Panel > Control Panel Home > Default Programs > Set Associations".

そこから、Notepad ++が私のデフォルトプログラムであることがわかります。

次に、Notepad ++のレジストリに移動する必要があります。例:

"HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Notepad++"

そして、次のような完全なファイルの場所を確認してください。

C:\Program Files\Notepad++

編集:

通常、インストールするすべてのプログラムには、構成可能なレジストリが関連付けられています。ほとんどのプログラムの詳細は次の場所にあります。

"HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node" (64 bit)
"HKEY_LOCAL_MACHINE\SOFTWARE\" (32 bit)

したがって、これらの場所にregedit.exeを使用して、プログラムを見つけ、exeの場所を表示する必要があります。

2
Jay

この情報は、assocftypeの2つのコマンドラインツールを使用して取得できます。

連想を助ける
ファイル拡張子の関連付けを表示または変更します

ftypeを助ける
ファイル拡張子の関連付けで使用されるファイルタイプを表示または変更します

それらを組み合わせて、必要な情報を生成できます。
for /f "delims== tokens=2" %a in ('assoc .pdf') do @ftype %a

これをコマンドラインから直接実行すると、.pdfファイルに登録されているプログラムのパスとパラメーターが得られます。

9
wmz