中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 注册表清理:删除"我最近的文档"
作者:
标题: 注册表清理:删除"我最近的文档" 上一主题 | 下一主题
ppp123ggg
初级用户





积分 39
发帖 11
注册 2008-8-20
来自 dasdasd
状态 离线
『楼 主』:  注册表清理:删除"我最近的文档"


@echo off
reg delete HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs /va /f
reg query HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs>>aa.txt
rem 删除RecentDoc下的子键,辅助将子项输入文本

for /f "skip=4" %%a in (aa.txt) do (
echo %%a>>bb.txt
)
rem 获得全子项

for /f "tokens=1,2,3,4,5,6,7,8 delims=\" %%a in (bb.txt) do (
echo %%h>>cc.txt
)
rem 获取各子项名字

set str=
for /f "delims=" %%a in (cc.txt) do (
  call set str=%%str%%%%a
)
echo %str%>>dd.txt
rem 全子项赋给变量

for /f "tokens=1,2 delims=." %%a in (dd.txt) do (
reg delete HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs\.%%a /va /f
)
rem 删除第1个子项值

set str=
for /f "skip=1 delims=" %%a in (cc.txt) do (
  call set str=%%str%%%%a
)
echo %str%>>%str%.txt
rem 把剩下的子项输入文本


:REGagain
for /f "tokens=1,2 delims=." %%a in (%str%.txt) do (
reg delete HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs\.%%a /va /f

)

set str=
for /f "skip=1 delims=" %%a in (%str%.txt) do (
  call set str=%%str%%%%a
)
del %str%.txt
echo %str%>>%str%.txt
goto REGagain
代码比较长 , 主要的问题就是从:REGagain循环开始的哦   请问下这代码里面哪里出错了 不能执行(知道的 麻烦下 请详细指出)     还是这种方法本身就不能实现 (如果是这样 那是否还有别的方法实现??请给出例子)       最后循环的跳出还没写

───────────────── 版务记录 ─────────────────
执行:HAT
操作:合并帖子"{43205}注册表清理";在帖子标题中增加搜索关键字;代码加code标签
说明:原标题"说不清这算什么问题 但大家看了就会知道"不利于论坛搜索
处罚:因属论坛新人,不予积分处罚
提示:请访问 {7326}论坛新手必读,所有人的基本行为准则[转帖]
───────────────── 版务记录 ─────────────────


[ Last edited by HAT on 2008-9-25 at 08:28 PM ]

2008-9-25 14:34
查看资料  发送邮件  发短消息 网志  OICQ (550848898)  编辑帖子  回复  引用回复
moniuming
银牌会员

永远的菜鸟



积分 1335
发帖 574
注册 2007-11-27
来自 广西
状态 离线
『第 2 楼』:  

可能是这里吧(str已经为空,何来的%str%.txt???):
set str=
for /f "skip=1 delims=" %%a in (%str%.txt) do (
  call set str=%%str%%%%a
)

2008-9-25 15:54
查看资料  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 3 楼』:  

如果你能把自己想要实现的功能详细描述清楚,可能别人已经用非常简洁的代码帮你实现了。



2008-9-25 16:32
查看资料  发短消息 网志   编辑帖子  回复  引用回复
ppp123ggg
初级用户





积分 39
发帖 11
注册 2008-8-20
来自 dasdasd
状态 离线
『第 4 楼』:  注册表清理


HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs\
下所有的 子项中的键值清理

2008-9-25 16:58
查看资料  发送邮件  发短消息 网志  OICQ (550848898)  编辑帖子  回复  引用回复
tireless
银牌会员





积分 2025
发帖 1122
注册 2007-9-5
状态 离线
『第 5 楼』:  


@echo off

set regpath=HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs

for /f "tokens=8 delims=\" %%a in ('reg query %regpath%^|find "%regpath%\"') do for /f "skip=4" %%b in ('reg query %regpath%\%%a') do reg delete %regpath%\%%a /v %%b /f
P.S. 还不如把整个 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs\ 删除?

[ Last edited by tireless on 2008-9-24 at 10:53 PM ]

2008-9-25 18:23
查看资料  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 6 楼』:  


@echo off
reg delete "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs" /f
reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" /v "NoRecentDocsHistory" /t REG_DWORD /d "1" /f




2008-9-25 20:20
查看资料  发短消息 网志   编辑帖子  回复  引用回复
radem
高级用户

CMD感染者


积分 691
发帖 383
注册 2008-5-23
状态 离线
『第 7 楼』:  

我一直用这个:
@echo off
Del "%userprofile%\Recent\*.lnk">nul 2>nul




2008-9-26 01:08
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: