Board logo

标题: [其他] 求删除下面这个文件夹里的东西的批处理的吗 [打印本页]

作者: hfstar    时间: 2012-1-10 11:04     标题: 求删除下面这个文件夹里的东西的批处理的吗

一个新建文件夹里有很多不同后缀的文件,如: 新建 批处理文件.bat ,新建 Microsoft Word 文档.doc,新建 Microsoft PowerPoint 演示文稿.ppt,新建 注册表项.reg,新建 文本文档.txt,新建 Microsoft Excel 工作表.xls.....等等,我想写一段批处理代码,要删除这个文件夹里的所有不同格式的文件,但是要保留其中的1个或者1个以上的文件,比如,我要删除这个文件夹里的所有文件,但是要保留 新建 文本文档.txt,新建 Microsoft Excel 工作表.xls这两个文件,批处理该怎样写呢,请高手指点一下
作者: find    时间: 2012-1-10 11:35

  1. @echo off
  2. set "keep1=新建 文本文档.txt"
  3. set "keep2=新建 Microsoft Excel 工作表.xls"
  4. for %%a in (*) do (
  5.     if "%%a" neq "%0" (
  6.         if "%%a" neq "%keep1%" (
  7.             if "%%a" neq "%keep2%" (
  8.                 del /f /a /q "%%a"
  9.             )
  10.         )
  11.     )
  12. )
复制代码

作者: hfstar    时间: 2012-1-10 12:33

回复 2# find


    O(∩_∩)O谢谢
作者: hfstar    时间: 2012-1-10 12:40

回复 2# find


    不好意思哦,还是执行不了,我的这个文件夹的的名字叫 新建文件夹
作者: find    时间: 2012-1-10 13:29

回复 4# hfstar


什么是“执行不了”?
作者: hfstar    时间: 2012-1-10 13:53

回复 5# find

是没有保留哪两个要保留的文件,是把这个  新建文件夹  和里面的全部文件保留了,而把这个文件夹外的所有文件删除了,我要的是删除这个 新建文件夹 里的所有文件但是要保留其中的两个
作者: find    时间: 2012-1-10 14:10

回复 6# hfstar


请把bat文件保存到“新建文件夹”里面
作者: hfstar    时间: 2012-1-10 14:21

本帖最后由 hfstar 于 2012-1-10 14:22 编辑

回复 7# find

刚刚试过了,是我的批处理的名字的问题,要重命名一下才行,我想做一个放在其他位置删除这个文件夹里的所有文件只是保留其中两个文件的批处理,我想做了用来删除软件的多余的语言用,
作者: find    时间: 2012-1-10 14:27

回复 8# hfstar


把完整路径写入for命令即可
  1. @echo off
  2. set "keep1=新建 文本文档.txt"
  3. set "keep2=新建 Microsoft Excel 工作表.xls"
  4. for %%a in ("C:\test\新建文件夹\*.*") do (
  5.     if "%%a" neq "%0" (
  6.         if "%%a" neq "%keep1%" (
  7.             if "%%a" neq "%keep2%" (
  8.                 del /f /a /q "%%a"
  9.             )
  10.         )
  11.     )
  12. )
复制代码

作者: hfstar    时间: 2012-1-10 14:30

回复 7# find


    我曾经用过 del /f /s /q ""   1>>被保留文件1  2>>被保留文件2 来做这个批处理,但是 被保留文件 会被修改啊
作者: hfstar    时间: 2012-1-10 14:45

回复 9# find


    多谢啦,keep1=新建 文本文档.txt" 这里也是要完整的路径吧,还有,如果我不想把执行的这个批处理删除了,是不是去掉 if "%%a" neq "%0" (
这一行的代码就可以了,这个删除的批处理会不会修改被保留的文件呢
作者: find    时间: 2012-1-10 16:53

回复 11# hfstar
  1. @echo off
  2. set "keep1=新建 文本文档.txt"
  3. set "keep2=新建 Microsoft Excel 工作表.xls"
  4. for %%a in ("C:\test\新建文件夹\*.*") do (
  5.     if "%%~nxa" neq "%0" (
  6.         if "%%~nxa" neq "%keep1%" (
  7.             if "%%~nxa" neq "%keep2%" (
  8.                 del /f /a /q "%%a"
  9.             )
  10.         )
  11.     )
  12. )
复制代码
你自己试试不就知道会不会修改被保留的文件啦?
作者: hfstar    时间: 2012-1-10 18:53

回复 12# find


    恩,谢谢,麻烦你了
作者: hfstar    时间: 2012-1-11 11:48

回复 2# find


    如果要删除一个文件夹里面的所有文件和文件夹,但是又要保留一个文件夹及其此文件夹里面的文件的批处理该怎样写呢
作者: find    时间: 2012-1-11 12:45

回复 14# hfstar


你的需求到底是什么?
按这个写了之后,还会不会继续变?
作者: hfstar    时间: 2012-1-11 14:07

回复 15# find


    汗,真是不好意思哦,昨天你帮我写的那个批处理很好用,我还想写个删除文件夹里的所有文件夹,但是要保留其中的一个文件夹和里面的文件,比如,文件夹A里有子 文件夹a.文件夹b.文件夹c.文件夹d.文件夹e.文件夹e里有文件 x.oxc,我想删除文件夹A里的所有文件夹,但是要保留 文件夹e及里面的文件 x.oxc,我不知道怎么写,如果你觉得不方便的话,没有关系的,就当我什么都没有说




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