我需要删除一个程序打开用列表(我需要用较新版本替换自定义程序,但我不记得文件.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
)
)