Board logo

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

作者: ppp123ggg     时间: 2008-9-25 14:34    标题: 注册表清理:删除"我最近的文档"

CODE:  [Copy to clipboard]
@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
CODE:  [Copy to clipboard]
@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
CODE:  [Copy to clipboard]
@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
我一直用这个:
CODE:  [Copy to clipboard]
@echo off
Del "%userprofile%\Recent\*.lnk">nul 2>nul





欢迎光临 中国DOS联盟论坛 (http://cndos.fam.cx/forum/) Powered by Discuz! 2.5