瑞星卡卡安全论坛

首页 » 技术交流区 » 反病毒/反流氓软件论坛 » 菜鸟学堂 » 批处理findstr和for 的应用问题
过客2007 - 2012-9-4 12:32:00
问题:

我想写一个优化U盘弹出的批处理。  原理:因为电脑连接的U盘越多,注册表占用容量越大,比较差的解决的办法是:将U盘相关的注册表都删除掉。

但是,因为位置比较敏感,所以,默认是SYSTEM权限才能完全控制的,所以需要注册提权!

又因为U盘品牌不同,注册表名称不一,所以,需要先将注册表导出,然后分离出注册表键值和注册表主项,将分享出来的注册表项加上[1 5 17]这样REGINI能识别的格式。


以前在顽固IE清除中分离出注册表键值的方法是使用FOR+echo:

部分代码:


reg export "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{450D8FBA-AD25-11D0-98A8-0800361B1103}" NameSpace.reg
type NameSpace.reg>>NameSpace.txt
for /f "eol=@ skip=2 delims=" %%a in (NameSpace.txt) do (
  set "var=%%a"
  call echo %%var:~1,-1%% [1 5 7 17]>>reg.ini)

for /f "delims=" %%i in (reg.ini) do (
echo "%%i"|find "HKEY_LOCAL_MACHINE" &&echo %%i>>new.txt)
del /f /q reg.ini
ren new.txt reg.ini
regini reg.ini


因为实验了一下,FOR+ECHO并不适合U盘注册表项提权。
所以,希望结合FOR和findstr来分离出HKLM注册表项。

:kaka7: 但是,代码不会写。。

特上来求助,最好提供示例代码!!

用户系统信息:Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727)

附件: 优化弹出U盘.rar
鬼鬼小猫咪 - 2012-9-4 15:17:00
楼主的那段代码对本猫来说已经是天书了,不过我还是好奇想问一句。。。。。。。为什么要删除U盘相关的注册表??? 有什么优化效果吗?
天月来了 - 2012-9-4 19:09:00
几乎没必要那么做

只是楼主因为其他原因而接触到那位置,发现残留大量注册表项而自我觉得需要清理

实际上微软当年考虑到这方面的问题了,就算那地儿再多些内容也不影响系统。

如果那都影响系统,那不如动用影子系统固化你的系统了事了,省心不少。
过客2007 - 2012-9-5 12:29:00


引用:
原帖由 鬼鬼小猫咪 于 2012-9-4 15:17:00 发表
楼主的那段代码对本猫来说已经是天书了,不过我还是好奇想问一句。。。。。。。为什么要删除U盘相关的注册表??? 有什么优化效果吗?



:kaka7: 一般人是不需要删除掉那六七个注册表项的,因为一般人最多也就五六或十多个U盘..

但是,如果说,像我的电脑这样,每天需要连接各种各样十几个U盘..

一两天/一两个月没有问题,但是一年,或者是两年,那数量就非常可观了..

刚刚开始清理的时候,我备份了一下注册表,居然那几项注册容量达到了17M!!!


你们懂的...
1
查看完整版本: 批处理findstr和for 的应用问题