Board logo

标题: [文件操作] 批处理删除时如何排除包含某些字符的文件? [打印本页]

作者: hzusb    时间: 2012-8-17 19:39     标题: 批处理删除时如何排除包含某些字符的文件?

本帖最后由 hzusb 于 2012-8-22 20:31 编辑

为了不走弯路,我直接把问题具体化,以下为修改后的需要解决问题,请朋友们帮我一下,谢谢!

如何删除IE临时文件,保留Cookie:文件。以下为路径:

删除:
C:\Users\用户名\AppData\Local\Microsoft\Windows\Temporary Internet Files 目录下除Cookie:以外的所有文件
作者: 狗屁不通    时间: 2012-8-17 21:51

本帖最后由 狗屁不通 于 2012-8-17 22:10 编辑
  1. dir /a-d /b /s c:\files|find /V "KB" >>list.txt
  2. for /f %%i in (list.txt) do del /q %%i
复制代码


建议你先运行第一行,然后打开list.txt 看看有没有不用删的文件。不用删的就把那行删掉,然后运行第二行。
作者: hzusb    时间: 2012-8-17 22:33

回复 2# 狗屁不通


    谢谢,我是想,上面二个效果,各做一个批处理,不是分二步进行
作者: 狗屁不通    时间: 2012-8-17 22:42

本帖最后由 狗屁不通 于 2012-8-17 22:43 编辑

回复 3# hzusb
那简单了
  1.     dir /a-d /b /s c:\files|find / "KB" >>保留list.txt
  2.     for /f %%i in (保留list.txt) do copy %%i  保留目录\
复制代码
第二个
  1. dir /a-d /b /s >>删除列表.txt
  2. for /f %%i in (删除列表.txt) do del /q %%i
复制代码

作者: hzusb    时间: 2012-8-18 00:22

回复 4# 狗屁不通


    谢谢,我使用无效啊,文件还在
作者: apang    时间: 2012-8-18 01:10

1
  1. @echo off&setlocal enabledelayedexpansion
  2. for /r "c:\files" %%a in (*.*) do (
  3.   set "file=%%~nxa"
  4.   if /i not "!file:~,2!"=="kb" del /q /f "%%a"
  5. )
复制代码
2
  1. @echo off
  2. pushd "c:\files\"
  3. del /f /q *.*
  4. for /f "delims=" %%a in ('dir /ad /b') do rd /s /q "%%a"
复制代码

作者: hzusb    时间: 2012-8-18 08:44

本帖最后由 hzusb 于 2012-8-18 09:09 编辑

回复 6# apang


你好,也删不掉!

我真实想操作的是:删除 C:\Users\user1\AppData\Local\Microsoft\Windows\Temporary Internet Files 下的所有文件,但排除Cookie:这类的文件

我把你提供的代码换了路径,和排除的名称,但执行后这里所有文件都还在,要权限吗?换到其它路径,好像能删除一部分。
作者: apang    时间: 2012-8-18 10:28

回复 7# hzusb

晕,原来是要删Temporary Internet Files里的文件。。。
cookie:开头的文件只是索引文件,对应的真实文件在Cookies文件夹里。
作者: hzusb    时间: 2012-8-18 11:56

本帖最后由 hzusb 于 2012-8-18 11:57 编辑

是啊,我想清空Temporary Internet Files中的其它所有文件,我只想保留cookie:
作者: hzusb    时间: 2012-8-18 11:56

回复 8# apang


但是只要清空了Temporary Internet Files中的cookie:文件,网页中的登录信息一样会丢失啊。

我只想保留cookie:,清空Temporary Internet Files中的其它所有文件,应该如何写啊?
作者: 545810831    时间: 2012-8-21 02:16

  1. @echo off
  2. for  /f   "delims=" %%i  in ('dir /s  /b c:\files^|findstr /v "kb"') do  (
  3.   del /s /q "%%i"
  4.    rd /s  /q "%%i"
  5. )
  6. pause  
复制代码

作者: hzusb    时间: 2012-8-24 23:34

回复 11# 545810831


    谢谢,解决不了




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2