Board logo

标题: 如何实现从注册表读取IE缓存路径并清空? [打印本页]

作者: peter1123     时间: 2008-10-2 15:34    标题: 如何实现从注册表读取IE缓存路径并清空?
REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v Cache 我知道用这个命令读取 但如何用批处理清空? 希望哪位大侠指点一二

作者: peter1123     时间: 2008-10-2 16:43
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 ]

作者: peter1123     时间: 2008-10-2 16:43
贴个完整的 @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 ]

作者: peter1123     时间: 2008-10-2 23:08
@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

作者: peter1123     时间: 2008-10-2 23:17
@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 再精简一下

作者: peter1123     时间: 2008-10-2 23:53
@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 ]

作者: wgmlzj     时间: 2008-10-3 00:15
@echo off ipconfig/release ipconfig/renew ipconfig /registerdns arp -d Nbtstat -R Nbtstat -RR ipconfig /flushdns

作者: peter1123     时间: 2008-10-3 13:57
@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