删除程序时更正注册表中的文件关联 windows 7

Correct the file associations in the registry in windows 7 when a program is deleted

我有一个 windows 7 操作系统,并且在我的文档文件夹中安装了 Rstudio(只需解压缩 .zip 文件),因为我没有计算机的管理员权限。

然后我通过以下方式手动将文件结尾 .Rproj .R.Rmd 与 rstudio.exe 相关联:

效果很好,当我双击这些文件时,它们会在 RStudio 中自动打开。

在接下来的几个月里,我对 RStudio 进行了两次更新,但没有删除旧版本。然后我注意到文件总是在最旧版本的 RStudio(我安装的第一个版本)中打开。 我决定清理并删除两个旧版本。 此时,文件关联消失了(正如预期的那样,因为我刚刚删除了它们关联的程序)。

为了将它们与最新版本的 RStudio 相关联,我重复了上面的手动步骤,但遇到了一个障碍:通过单击对话框中的“浏览”按钮选择 rstudio.exe 后,程序执行没有作为选项出现在主对话框中,我无法将文件与其关联。

我在这里和其他地方搜索了解决方案,但找不到包含解决我问题的完整步骤的解决方案。我确实注意到这个问题绝不是 Rstudio 独有的,我想任何与您删除的程序相关联的文件结尾都会发生(而不是卸载?)。

我怀疑旧版本 Rstudio 的路径卡在注册表的某个地方,但在命令行中尝试 assoc .Rproj 的各种迭代对我没有帮助:

C:\Users\myusername>assoc .Rproj
File association not found for extension .Rproj

C:\Users\myusername>assoc .Rproj = rstudio
Access is denied.

此外,RStudio 在 Default Programs 列表(从开始菜单访问)中不可用,受影响的文件结尾也未在文件关联下列出。

我最终使用 windows regedit 找到了解决方案 - 但由于似乎没有 post 包含完整的步骤,我将其 post 编辑为在这里回答,以防其他人遇到同样的问题。我必须通过点击方式执行此操作,所以如果有人可以在命令行界面中提供解决方案,或者提供一些关于为什么我收到“访问被拒绝”消息(即使我尝试时也会发生)的见解,我将不胜感激使用临时管理员帐户登录)。

事实证明我是对的——旧文件路径仍然与注册表中的文件结尾相关联。我无法从 windows 命令行提示符访问或编辑它,但使用 windows regedit 程序可以工作,如下所示:

  1. 转到开始按钮,键入 regedit,然后单击 regedit 程序图标将其打开。
  2. 在 regedit 的左侧菜单中,单击箭头展开文件夹 HKEY_CLASSES_ROOT
  3. 向下滚动列表以查找已变得不相关的文件结尾(在我的例子中是 .R、.Rproj 和 .Rmd)
  4. 单击其中一个未关联的文件结尾以查看为其记录了哪些详细信息(这些将显示在 regedit 的右侧面板中)。
  5. 查看文件结尾的 Data 列下的内容(在我的例子中,对于 .R,它表示“R_auto_file”)。
  6. 此值(例如“R_auto_file”)是用于指向将用于打开文件的程序的键。
  7. 现在向下滚动 regedit 中的左侧菜单,越过 zs 并继续前进,直到找到与您刚刚确定的键同名的子文件夹。
  8. 单击此子文件夹旁边的箭头(例如“R_auto_file”)将其展开并展开其中的子文件夹(shellopen)直到你到达 command.
  9. 单击 command 在右侧面板中查看详细信息。
  10. 右键单击右侧面板中 Name 列下显示 Default 的图标,然后从出现的菜单中单击 select Modify…
  11. 在出现的对话框中,在 Value data: 下,您将看到用于打开文件的程序的可编辑文件路径。
  12. 此文件路径可能指向您删除的程序的旧版本。
  13. 编辑文件路径使其指向新程序,然后单击“确定”保存更改。
  14. 对所有已取消关联的文件类型重复步骤 3 – 13。
  15. 重新启动计算机以使更改生效。
  16. 您现在应该会看到文件旁边有程序图标,并且当您双击它们时会以正确的版本打开。

我在 Windows 上遇到了与 RStudio 类似的问题:

使用安装程序安装 RStudio 后,我已通过可下载的 ZIP 文件更新到较新的版本并将其安装到另一个文件夹中。

从那时起,双击 .Rproj 打开了旧的 RStudio 而不是新的,尽管我试图用新的 RStudio.exe 文件重新分配扩展名

我的解决方案是通过控制台更改此注册表项:

reg add HKEY_USERS\<Windows SID>_Classes\Applications\rstudio.exe\shell\open\command /f /ve /d "\"C:\Users\Public\RStudio\bin\rstudio.exe\" \"%1\""

请将上面代码段中的 替换为您的个人 windows 用户 ID。您可以通过

获取您的 SID
whoami /user

SID 如下所示:

S-1-8-21-667978445-1323479522-1885766523-895239

顺便说一句:您也可以使用旧的 regedit 来更改路径(不需要本地管理员权限!)