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    标题: 测试不成功



  Quote:
Originally posted by Hanyeguxing at 2010-4-24 10:46 AM:
[code]@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    标题: 小弟是菜鸟,不知道哪里改错了



  Quote:
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    标题: 大哥谢谢你,学习了



  Quote:
Originally posted by Hanyeguxing at 2010-4-26 09:03 PM:
[code]@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    标题: 大哥,能不能做个现成的,小弟真的不懂



  Quote:
Originally posted by Hanyeguxing at 2010-4-26 09:03 PM:
[code]@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    标题: 我的想法就是↓



  Quote:
Originally posted by Hanyeguxing at 2010-4-26 09:03 PM:
[code]@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    标题: 大哥,特别崇拜和感谢你!!!



  Quote:
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    标题: 哥,谢谢!兄弟这么麻烦你,你还....,真的谢谢了



  Quote:
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    标题: 哥最后麻烦你一次,再下去我都不好意思了



  Quote:
Originally posted by Hanyeguxing at 2010-4-28 05:20 PM:
把 set @ >c:\测试.txt 那一行删除,那是测试用的

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