hoochanlon 发表于 2024-4-11 08:14

清除卸载软件残留的启动项注册表

起因


无法找到此应用该应用的路径可能不存在,或者可能位于网络驱动器上。请检查注册表值中的路径是否有效,然后再对启动应用进行进一步更改。


你好 请问 我的设置 应用 启动 出现无法找到此应用,可是我有这个应用,我有steam。 - Microsoft Community

其实这个问题不管也行,有点强迫症还是不太能接受....


简单写脚本

由于我这有两个无效的注册项,所以就设置了“手动输入,自行退出”的功能。

附源码:https://github.com/hoochanlon/scripts/blob/main/d-bat/clear_nullify_startup_reg.bat

@rem 问题追溯
@REM https://answers.microsoft.com/zh-hans/windows/forum/all/%E4%BD%A0%E5%A5%BD-%E8%AF%B7%E9%97%AE/c65a02d7-3e09-4c53-9761-b59ecbea3513
@REM 删除注册表项
@REM reg delete "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run" /v Pro***N /f

@echo off

:loop
@REM echo 输入要删除的注册表值名称,或输入 'exit' 退出:
set /p reg_value=输入要删除的注册表值名称,或输入 'exit' 退出:

if not "%reg_value%"=="" (
    if "%reg_value%"=="exit" (
      goto :end
    ) else (
      reg delete "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run" /v "%reg_value%" /f
    )
) else (
    echo 未输入任何值名称。
)

goto :loop

:end
echo 脚本已退出。


hoochanlon 发表于 2024-4-11 13:36

archon1 发表于 2024-4-11 11:04
直接进到regedit的相关路径操作不应该是更方便吗?

已更新源码,增加定位GUI界面需求。


@echo off

set "regPath=HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run"

@REM 将路径添加到注册表中的 LastKey 值
@REM LastKey 是其中的一个值,用于存储上次在注册表编辑器中访问的注册表路径。
reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Applets\Regedit" /v LastKey /t REG_SZ /d "%regPath%" /f

REM 提示用户是否打开注册表 (archon1 的建议)
choice /c YN /m "是否打开注册表(高级)定位到相关项"
if errorlevel 2 (
    echo 用户选择不打开注册表编辑器。
) else (
    start regedit
)

:loop
@REM echo 输入要删除的注册表值名称,或输入 'exit' 退出:
set /p reg_value=输入要删除的注册表值名称,或输入 'exit' 退出:

if not "%reg_value%"=="" (
    if "%reg_value%"=="exit" (
      goto :end
    ) else (
      reg delete "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run" /v "%reg_value%" /f
    )
) else (
    echo 未输入任何值名称。
)

goto :loop

:end
echo 脚本已退出。


@REM 脚本过程
@REM 问题追溯
@REM https://answers.microsoft.com/zh-hans/windows/forum/all/%E4%BD%A0%E5%A5%BD-%E8%AF%B7%E9%97%AE/c65a02d7-3e09-4c53-9761-b59ecbea3513
@REM 参考项:定位注册表、网页编码
@REM https://blog.csdn.net/admans/article/details/122682970
@REM https://blog.csdn.net/lanlangaogao/article/details/122535848

alphagis 发表于 2024-4-11 08:17

会不会查询很久呢

hoochanlon 发表于 2024-4-11 08:20

alphagis 发表于 2024-4-11 08:17
会不会查询很久呢

写这个的目的,其实是不想翻太深注册表,我发现问题都集中于“HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run” 这个位置,正好我也要批量删除,虽然只有两个,但是也为之后省事了。

bopp2 发表于 2024-4-11 08:27

xiaoyon133 发表于 2024-4-11 08:30

这两天刚想找这个东西谢谢大佬

hmg668 发表于 2024-4-11 08:31

谢谢分享

sanyechong66 发表于 2024-4-11 08:34

小白求教,如何按照你的方法清除卸载软件残留的启动项注册表?

hcy941028 发表于 2024-4-11 08:39

感谢大佬分享{:1_893:}

hoochanlon 发表于 2024-4-11 08:50

bopp2 发表于 2024-4-11 08:27
感谢!正需要,如何把清除卸载软件残留下的空文件夹清除干净?

这操作具有一定危险性,最好用软件,如果自己倒腾,用虚拟机或是独立一个盘符写脚本,这样万一写失误也不至于丢失自己重要的文件。

首先写个简单判断文件夹是否为空,子文件夹有几层,(有子文件夹就不删,怕误删),第二步再来考虑检测盘符的事(一定要独立一个空盘符做测试)

tomliu 发表于 2024-4-11 08:51

感谢分享, 这个真有用
页: [1] 2 3 4
查看完整版本: 清除卸载软件残留的启动项注册表