Board logo

标题: 注册表清理:删除"我最近的文档" [打印本页]

作者: ppp123ggg     时间: 2008-9-25 14:34    标题: 注册表清理:删除"我最近的文档"
@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 ]

作者: moniuming     时间: 2008-9-25 15:54
可能是这里吧(str已经为空,何来的%str%.txt???):
set str=
for /f "skip=1 delims=" %%a in (%str%.txt) do (
call set str=%%str%%%%a
)

作者: HAT     时间: 2008-9-25 16:32
如果你能把自己想要实现的功能详细描述清楚,可能别人已经用非常简洁的代码帮你实现了。

作者: ppp123ggg     时间: 2008-9-25 16:58    标题: 注册表清理

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

作者: tireless     时间: 2008-9-25 18:23
@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 ]

作者: HAT     时间: 2008-9-25 20:20
@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

作者: radem     时间: 2008-9-26 01:08
我一直用这个:
@echo off
Del "%userprofile%\Recent\*.lnk">nul 2>nul