如何在「開啟方式」清單中找到程式的位置?

如何在「開啟方式」清單中找到程式的位置?

我需要刪除一個程式打開用列表(我需要用更新版本替換自訂程序,但我不記得該.exe文件在哪裡)。

我如何才能找到該程式在我的計算機上的位置?

由於某種原因,即使搜索所有.exe文件,我也無法使用應用程式名稱找到它。該程序沒有安裝程序,您只需將其.exe放在您想要的位置即可。

答案1

「開啟方式...」清單儲存在登錄中的兩個單獨的項目中。一個鍵儲存用於特定檔案副檔名的應用程式列表,另一個鍵儲存特定應用程式的位置。

您可以在其中找到它們regedit.exe(我不建議這樣做,因為您可能會意外地更改註冊表),也可以從命令列查詢它們:

> reg query HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.php\OpenWithList

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.php\OpenWithList
    a    REG_SZ    Dreamweaver.exe
    MRUList    REG_SZ    ba
    b    REG_SZ    notepad++.exe


> reg query HKEY_CLASSES_ROOT\Applications\notepad++.exe\shell\open\command /ve

HKEY_CLASSES_ROOT\Applications\notepad++.exe\shell\open\command
    (Default)    REG_SZ    "C:\Program Files\Notepad++\notepad++.exe" "%1"

我寫了一個非常短的批次檔來完成大部分的跑腿工作:

@echo off
SET _Ext=%~1
IF "%_Ext%"=="" SET /P _Ext=Enter file extension to query: 
for /f "tokens=2*" %%a in ('reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\%_Ext%\OpenWithList" ^| FIND /v "MRUList"') do (
    echo|set /p=%%b: 
    for /f "tokens=2*" %%g in ('reg query "HKEY_CLASSES_ROOT\Applications\%%b\shell\open\command" /ve ^| FIND /v "MRUList"') do (
        echo %%h
    )
)

相關內容