.bat文件,用于有选择地删除三个文件的IE缓存

时间:2017-09-07 12:40:50

标签: windows batch-file internet-explorer flash caching

感谢帮忙

我目前在使用.bat文件时遇到一些问题,该文件专门为这三个文件删除了Internet Explorer 11缓存:

  • Analytics.swf
  • Deal.swf
  • Pricing.swf

目前我使用附加的代码,但它会删除缓存中的所有文件(OS = Windows 10):

@echo off

set DataDir=C:\Users\%USERNAME%\AppData\Local\Microsoft\Intern~1\

del /q /s /f "%DataDir%"
rd /s /q "%DataDir%"

set History=C:\Users\%USERNAME%\AppData\Local\Microsoft\Windows\History

del /q /s /f "%History%"
rd /s /q "%History%"

set IETemp=C:\Users\%USERNAME%\AppData\Local\Microsoft\Windows\Tempor~1

del /q /s /f "%IETemp%"
rd /s /q "%IETemp%"

set Cookies=C:\Users\%USERNAME%\AppData\Roaming\Microsoft\Windows\Cookies

del /q /s /f "%Cookies%"
rd /s /q "%Cookies%"

C:\bin\regdelete.exe HKEY_CURRENT_USER "Software\Microsoft\Internet Explorer\TypedURLs"

1 个答案:

答案 0 :(得分:0)

以下批处理脚本将遍历您提供的4个文件夹,并在所有子目录(dir /b /s /a:-d "%%~f")中搜索所有三个文件(请参阅how to loop through arrays in batch)。

如果脚本没问题,请删除echo命令前面的del

@echo off

set "filesDel[0]=Analytics.swf"
set "filesDel[1]=Deal.swf"
set "filesDel[2]=Pricing.swf"

set "dirDel[0]=%LocalAppData%\Microsoft\Intern~1"
set "dirDel[1]=%LocalAppData%\Microsoft\Windows\History"
set "dirDel[2]=%LocalAppData%\Microsoft\Windows\Tempor~1"
set "dirDel[3]=%AppData%\Microsoft\Windows\Cookies"

rem loop over all directories defined in dirDel array
for /f "tokens=2 delims==" %%d in ('set dirDel[') do (
   if exist "%%~d" (
      pushd "%%~d"
      rem loop over all files defined in filedDel array
      for /f "tokens=2 delims==" %%f in ('set filesDel[') do (
         rem search for file and delete it
         for /f "tokens=*" %%g in ('dir /b /s /a:-d "%%~f"') do (
            echo del /f "%%~g"
         )
      )
      popd
   )
)

请注意,我使用set命令中的引号,如:set "name=content",这允许路径名中的空格,而变量内容本身没有引号。

来自ss64.com的命令参考链接: