[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 批处理如何排除一些不删文件及文件夹的?

我的应用目录D:\web\online 下面有几百个文件及目录,现在我要删除这个目录下面的所有东西除了web.config,SPSideConfig.xml两个文件,还有log及apps这两个目录,怎么去写批处理的?谢谢

传个VBS的:
  1. Delfdr "D:\"    '你要处理的路径
  2. sub Delfdr(folderspec)
  3.    Dim fso, f, f1, fc, foldername, f2, ff, filename
  4.    Set fso = CreateObject("Scripting.FileSystemObject")
  5.    Set f = fso.GetFolder(folderspec)
  6.    Set ff = f.Files      
  7.    For Each f2 in ff
  8.        Select Case f2.name
  9.           Case "pagefile.sys"   '你想保留的文件
  10.           Case Else
  11.              f2.Delete(True)
  12.         End Select
  13.    Next
  14.    Set fc = f.SubFolders   
  15.    For Each f1 in fc
  16.        foldername = f1.name
  17.        Select Case foldername
  18.        Case "网络游戏"  '你想保留的文件
  19.        Case Else
  20.            f1.Delete(True)
  21.        end Select
  22.    next
  23. Set FSO=NoThing
  24. End sub
复制代码

TOP

哇.太酷了.功能实现了.非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常感谢zm900612 大哥这位大牛人和热心人,向你致敬!!!!!!!!!!!!!!!!

TOP

先前贴错代码,把旧的贴了上去...代码已更新。如果要用绝对路径,把"%1"换成"D:\web\online"就行了

TOP

还是不行啊.大哥.你就直接帮我修改成D:\batdir\1.bat这个脚本,只要我双击它,就可以删除D:\web\online目录下的所有东西除了保留的哪些文件.再次谢谢大哥啊.

TOP

还是不行哦.大哥.假如我这个脚本在D:\batdir这个目录下叫做1.bat,怎么去修改代码啊,删除D:\web\online下面的所有东西除了几个保留的外,刚才我去用1.bat "目标文件夹路径"不行哦.再次谢谢大哥啊

TOP

哦.好的.谢谢zm900612 大哥

TOP

外部调用该P的时候这样一句话就行了:
1.bat "目标文件夹路径"

TOP

哈哈,zm900612 大哥来了啊.是这样的呢,我们开发人员要把这个脚本放到D:\batdir目录下,然后调用这个脚本去删除D:\web\online 下面的东西呢,

TOP

本帖最后由 zm900612 于 2011-3-31 15:12 编辑

修改下,如果脚本在目标文件夹,直接双击运行,否则拖动文件夹到该bat图标上运行:
  1. @(echo off
  2. cd /d "%1"
  3. attrib -s -h
  4. for %%a in (web.config,SPSideConfig.xml,log,apps) do attrib +s +h %%a
  5. del /q /f *.*
  6. for /d %%a in (*) do rd /s /q "%%a"
  7. for /f "delims=" %%a in ('dir /a /b') do attrib -h -s "%%a"
  8. pause) 2>nul
复制代码
晕,刚才拿错代码了

TOP

zm900612 大哥来了没?

TOP

顶顶我自己再顶顶,

TOP

是删除对了.我就放在D:\web\online 里面,结果脚本和该保留的文件都保留下来了,现在我想把这个脚本放在
D:\batdir里面,怎么改啊?其实我就是不明白大哥你代码里的del /q /f *.*这句中的两个*代表什么?还有
for /d %%a in (*) do rd /s /q "%%a"这句里面的*代表什么?假如我把脚本放在D:\batdir的话,这两处是否都要改,我对批处理暂时一点都不懂,但是要记着用.谢谢大哥啊

TOP

为什么会删光了...
不明白出错原因,能否说明目录树以及脚本位置

TOP

哇.大哥.你真是高手啊.删光了.脚本保留着呢.呵呵.  再问个小问题.如果我脚本不放在里面,我改路径的时候是不是要改两处啊.
改为del /q /f D:\web\online .*  还有for /d %%a in (D:\web\online ) do rd /s /q "%%a" 这样对吧

TOP

返回列表