1   1  /  1  页   跳转

[讨论] 批处理findstr和for 的应用问题

批处理findstr和for 的应用问题

问题:

我想写一个优化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注册表项。

但是,代码不会写。。

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

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

附件附件:

下载次数:1032
文件类型:application/octet-stream
文件大小:
上传时间:2012-9-4 12:32:04
描述:rar

传说在很远的古代,一个庙里,有一个大神与一个小鬼住在里面。天下了大雨,庙前的河里长了水。来了一个人,过不了河,就把庙里的大神搬了出去,丢在河里,然后他踏在大神的身上,飞跳了过河。等会又来了
分享到:
gototop
 

回复:批处理findstr和for 的应用问题

楼主的那段代码对本猫来说已经是天书了,不过我还是好奇想问一句。。。。。。。为什么要删除U盘相关的注册表??? 有什么优化效果吗?


gototop
 

回复:批处理findstr和for 的应用问题

几乎没必要那么做

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

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

如果那都影响系统,那不如动用影子系统固化你的系统了事了,省心不少。
百年以后,你的墓碑旁 刻着的名字不是我
gototop
 

回复: 批处理findstr和for 的应用问题



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



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

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

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

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


你们懂的...
传说在很远的古代,一个庙里,有一个大神与一个小鬼住在里面。天下了大雨,庙前的河里长了水。来了一个人,过不了河,就把庙里的大神搬了出去,丢在河里,然后他踏在大神的身上,飞跳了过河。等会又来了
gototop
 
1   1  /  1  页   跳转
页面顶部
Powered by Discuz!NT