中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-09 22:45
47,811 主题排行 / 349,897 发帖 / 今日 2 篇 / 48,255 会员排行
DOS批处理 & 脚本技术(批处理室) » 如何实现从注册表读取IE缓存路径并清空?
可打印版本  1,496 / 7
第1楼 peter1123 发表于 2008-10-02 15:34
初级用户 发帖 9 积分 20
如何实现从注册表读取IE缓存路径并清空?
REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v Cache

我知道用这个命令读取
但如何用批处理清空?

希望哪位大侠指点一二
第2楼 peter1123 发表于 2008-10-02 16:43
初级用户 发帖 9 积分 20
set tar=REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v Cache
for /f "skip=2 tokens=1,3" %%i in ('%tar%') do (set x=%%j)
for /f "delims=:\ tokens=1" %%i in ('echo %x%') do (set qqpan=%%i:)
for /f "skip=2 tokens=1,2 delims=:" %%i in ('%tar%') do (set y=%%j)
set f3="%qqpan%%y%"
rd /s /q %f3% & md %f3%

感谢WOWFANS提供
rd /s /q %f3% & md %f3%
不知道为什么这句用del替换就没效果了。。。

[ Last edited by peter1123 on 2008-10-2 at 16:44 ]
第3楼 peter1123 发表于 2008-10-02 16:43
初级用户 发帖 9 积分 20
贴个完整的

@echo off
echo 正在清理系统垃圾文件,请稍等......
set tar=REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v Cache
for /f "skip=2 tokens=1,3" %%i in ('%tar%') do (set x=%%j)
for /f "delims=:\ tokens=1" %%i in ('echo %x%') do (set qqpan=%%i:)
for /f "skip=2 tokens=1,2 delims=:" %%i in ('%tar%') do (set y=%%j)
set f3="%qqpan%%y%"
rd /s /q %f3% & md %f3%
del /f /q "%userprofile%\recent\*.*"
del /f /s /q /a "%systemdrive%\recycled\*.*"
del /f /s /q /a "%systemdrive%\RECYCLER\*.*"
del /f /q %windir%\prefetch\*.*
rd /s /q %Temp% & md %temp%
rd /s /q %Tmp% & md %tmp%
rd /s /q %windir%\temp & md %windir%\temp
echo 清理系统垃圾完成
pause


注意: 别把TEMP TMP IE缓存等环境变量放在根目录下!
否则RD /S将会全部删除的


[ Last edited by peter1123 on 2008-10-2 at 16:50 ]
第4楼 peter1123 发表于 2008-10-02 23:08
初级用户 发帖 9 积分 20
@echo off
echo 正在清理系统垃圾文件,请稍等......
set tar=REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v Cache
for /f "skip=2 tokens=1,2*" %%i in ('%tar%') do (set ie=%%k)
rd /s /q "%ie%" & md "%ie%"
del /f /q "%userprofile%\recent\*.*"
del /f /s /q /a "%systemdrive%\recycled\*.*"
del /f /s /q /a "%systemdrive%\RECYCLER\*.*"
del /f /q %windir%\prefetch\*.*
rd /s /q %Temp% & md %temp%
rd /s /q %Tmp% & md %tmp%
rd /s /q %windir%\temp & md %windir%\temp
echo 清理系统垃圾完成
pause

改进了一下
原来的办法太傻了。。。这下只需要一次for就OK
第5楼 peter1123 发表于 2008-10-02 23:17
初级用户 发帖 9 积分 20
@echo off
echo 正在清理系统垃圾文件,请稍等......
for /f "skip=2 tokens=1,2*" %%i in ('REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v Cache') do (rd /s /q "%%k" & md "%%k")
del /f /q "%userprofile%\recent\*.*"
del /f /s /q /a "%systemdrive%\recycled\*.*"
del /f /s /q /a "%systemdrive%\RECYCLER\*.*"
del /f /q %windir%\prefetch\*.*
rd /s /q %Temp% & md %temp%
rd /s /q %Tmp% & md %tmp%
rd /s /q %windir%\temp & md %windir%\temp
echo 清理系统垃圾完成
pause

再精简一下
第6楼 peter1123 发表于 2008-10-02 23:53
初级用户 发帖 9 积分 20
@echo off
echo 正在清理系统垃圾文件,请稍等......
for /f "skip=4 tokens=1,2*" %%i in ('REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v Cache') do (rd /s /q "%%k" & md "%%k")
del /f /q "%userprofile%\recent\*.*"
del /f /s /q /a "%systemdrive%\recycled\*.*"
del /f /s /q /a "%systemdrive%\RECYCLER\*.*"
del /f /q %windir%\prefetch\*.*
rd /s /q %Temp% & md %temp%
rd /s /q %Tmp% & md %tmp%
rd /s /q %windir%\temp & md %windir%\temp
echo 清理系统垃圾完成
pause




skip=4
这样才适合XP使用
skip=2
适合2003用

暂时测试结果是这样。。。。

[ Last edited by peter1123 on 2008-10-3 at 11:23 ]
第7楼 wgmlzj 发表于 2008-10-03 00:15
初级用户 发帖 40 积分 97
@echo off
ipconfig/release
ipconfig/renew
ipconfig /registerdns
arp -d
Nbtstat -R
Nbtstat -RR
ipconfig /flushdns
第8楼 peter1123 发表于 2008-10-03 13:57
初级用户 发帖 9 积分 20
@echo off
echo 正在清理系统垃圾文件,请稍等......
REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v Cache > %Temp%\cache.txt
for /f "skip=2 tokens=1,2*" %%i in ('find /i "cache" %Temp%\cache.txt') do (del /f /s /q "%%k")
del /f /q "%userprofile%\recent\*.*"
del /f /s /q /a "%systemdrive%\recycled\*.*"
del /f /s /q /a "%systemdrive%\RECYCLER\*.*"
del /f /q %windir%\prefetch\*.*
rd /s /q %Temp% & md %temp%
rd /s /q %Tmp% & md %tmp%
rd /s /q %windir%\temp & md %windir%\temp
echo 清理系统垃圾完成
pause
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023