Board logo

标题: 批处理清空注册表启动项? [打印本页]

作者: jfq668899     时间: 2010-4-24 03:54    标题: 批处理清空注册表启动项?
批处理清空注册表启动项,但要忽略某一项键值不需要删除,请高手帮忙看看如何编写,(注意:不是要那种清空完再加上去的)

Last edited by jfq668899 on 2010-4-25 at 17:30 ]

作者: Hanyeguxing     时间: 2010-4-24 10:46
@echo off&setlocal enabledelayedexpansion
set "h=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run"
for /f "skip=4 delims=" %%a in ('reg query "%h%"') do set "a=%%a"&if "!a:~0,1!"==" " for /f "delims=这里是一个tab制表符" %%b in ("%%a") do set "b=%%b"&set "@!b:~4!#=="
for %%a in (NvCplDaemon NvMediaCenter) do set "@%%a#="
for /f "delims=@#" %%a in ('set @') do echo.reg delete "%h%" /v "%%a" /f
pause

1,for %%a in (NvCplDaemon NvMediaCenter) do set "@%%a#="用来设置排除的键名,如果只有一个,可以写成set "@键名#="
2,测试正常后,删除for /f "delims=@#" %%a in ('set @') do echo.reg delete "%h%" /v "%%a" /f中的echo.和pause以正常运行。
3,运行前请先备份注册表相关项。

Last edited by Hanyeguxing on 2010-4-24 at 10:55 ]

作者: jfq668899     时间: 2010-4-25 16:53    标题: 测试不成功
总共4个键值,麻烦你再帮忙看看。谢谢了哥

REG ADD HKCU\Software\Microsoft\Windows\CurrentVersion\Run /v 360sd /d "\"D:\\360杀毒\\360sd.exe\" /autorun" /f
REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v Bbclock /d D:\\Portable\\桌面时钟\\BBClock.exe /f
REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v YzDock /d D:\\Portable\\YzDock\\YzDock.exe /f
REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v DMHotKey /d C:\\Program Files\\Samsung\\Easy Display Manager\\DMLoader.exe /f

作者: jfq668899     时间: 2010-4-25 16:57    标题: 测试不成功
Originally posted by Hanyeguxing at 2010-4-24 10:46 AM:
@echo off&setlocal enabledelayedexpansion
set "h=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run"
for /f "skip=4 delims=" %%a in ('reg query "%h%"') do ...


总共4个键值,麻烦你再帮忙看看。谢谢了哥

REG ADD HKCU\Software\Microsoft\Windows\CurrentVersion\Run /v 360sd /d "\"D:\\360杀毒\\360sd.exe\" /autorun" /f
REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v Bbclock /d D:\\Portable\\桌面时钟\\BBClock.exe /f
REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v YzDock /d D:\\Portable\\YzDock\\YzDock.exe /f
REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v DMHotKey /d C:\\Program Files\\Samsung\\Easy Display Manager\\DMLoader.exe /f

作者: Hanyeguxing     时间: 2010-4-25 18:04
测试不成功的话,把echo的信息贴出来

作者: jfq668899     时间: 2010-4-26 18:00    标题: 小弟是菜鸟,不知道哪里改错了
Originally posted by Hanyeguxing at 2010-4-25 06:04 PM:
测试不成功的话,把echo的信息贴出来


@echo off&setlocal enabledelayedexpansion
set "h=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run"
for /f "skip=4 delims=" %%a in ('reg query "%h%"') do set "a=%%a"&if "!a:~0,1!"==" " for /f "delims=这里是一个tab制表符" %%b in ("%%a") do set "b=%%b"&set "@!b:~4!#=="
for %%a in (NvCplDaemon NvMediaCenter) do set "@%%a#="360sd,Bbclock,YzDock,DMHotKey
for /f "delims=@#" %%a in ('set @') do reg delete "%h%" /v "%%a" /f

启动项下什么也没删除(忽略项和不忽略都没删除)

作者: Hanyeguxing     时间: 2010-4-26 21:03
@echo off&setlocal enabledelayedexpansion
set "h=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run"
for /f "skip=4 delims=" %%a in ('reg query "%h%"') do set "a=%%a"&if "!a:~0,1!"==" " for /f "delims= " %%b in ("%%a") do set "b=%%b"&set "@!b:~4!#=="&>>c:\测试.txt echo.!b!

1,把"delims= "中的连续空格改成一个制表符
2,把c:\测试.txt的内容贴出来

作者: jfq668899     时间: 2010-4-26 22:16    标题: 大哥谢谢你,学习了
Originally posted by Hanyeguxing at 2010-4-26 09:03 PM:
@echo off&setlocal enabledelayedexpansion
set "h=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run"
for /f "skip=4 delims=" %%a in ('reg query "%h%"') do ...


不过不懂什么是制表符

作者: jfq668899     时间: 2010-4-26 22:27    标题: 大哥,能不能做个现成的,小弟真的不懂
Originally posted by Hanyeguxing at 2010-4-26 09:03 PM:
@echo off&setlocal enabledelayedexpansion
set "h=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run"
for /f "skip=4 delims=" %%a in ('reg query "%h%"') do ...


要改的两项都不会,也不懂,帮帮小弟

作者: jfq668899     时间: 2010-4-26 22:59    标题: 我的想法就是↓
Originally posted by Hanyeguxing at 2010-4-26 09:03 PM:
@echo off&setlocal enabledelayedexpansion
set "h=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run"
for /f "skip=4 delims=" %%a in ('reg query "%h%"') do ...


HKCU\Software\Microsoft\Windows\CurrentVersion\Run /v 360sd /d "\"D:\\360杀毒\\360sd.exe\" /autorun"
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v Bbclock /d D:\\Portable\\桌面时钟\\BBClock.exe
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v YzDock /d D:\\Portable\\YzDock\\YzDock.exe
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v DMHotKey /d C:\\Program Files\\Samsung\\Easy Display Manager\\DMLoader.exe

在注册表启动项里,有几个项时不要删除,其它的全删。
启动项里没这几项不要添加进去。

作者: Hanyeguxing     时间: 2010-4-27 17:05
使用附件里的批处理
附件 1: 129.zip (2010-4-27 17:05, 402 bytes, 下载附件所需积分 1点 ,下载次数: 25)

作者: jfq668899     时间: 2010-4-27 23:43    标题: 大哥,特别崇拜和感谢你!!!
Originally posted by Hanyeguxing at 2010-4-27 05:05 PM:
使用附件里的批处理


测试成功,但不知为什么? 会提示: 环境变量 @ 没有定义

作者: Hanyeguxing     时间: 2010-4-28 00:05
把c:\测试.txt的内容贴出来

作者: jfq668899     时间: 2010-4-28 11:25    标题: 哥,谢谢!兄弟这么麻烦你,你还....,真的谢谢了
Originally posted by Hanyeguxing at 2010-4-28 12:05 AM:
把c:\测试.txt的内容贴出来


c:\测试.txt的内容是空的,不过我想,还是不要生成那个"测试.txt",太难看,有没有其它办法解决,哥再想想办法

作者: Hanyeguxing     时间: 2010-4-28 17:20
把 set @ >c:\测试.txt 那一行删除,那是测试用的

作者: jfq668899     时间: 2010-4-29 09:39    标题: 哥最后麻烦你一次,再下去我都不好意思了
Originally posted by Hanyeguxing at 2010-4-28 05:20 PM:
把 set @ >c:\测试.txt 那一行删除,那是测试用的


set @ >c:\测试.txt 那一行已经删除,但是环境变量 @ 没有定义 还是存在,怎么办了,谢谢 !最后问一个问题:能QQ上加个好友吗