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

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

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

本帖最后由 zm900612 于 2011-3-30 16:28 编辑

已修正
  1. @echo off
  2. attrib -s -h
  3. for %%a in (web.config,SPSideConfig.xml,log,apps,%0) do attrib +s +h %%a
  4. del /q /f *.*
  5. for /d %%a in (*) do rd /s /q "%%a"
  6. for /f "delims=" %%a in ('dir /a /b') do attrib -h -s "%%a"
  7. pause
复制代码

TOP

谢谢高手啊.我试下

TOP

不行啊.大哥.删除不了呢.还有其它方法吗

TOP

刚才考虑不周,没排除自身。
已修正,测试有效

TOP

谢谢啊.呵呵.我再试试.你是个大好人

TOP

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

TOP

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

TOP

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

TOP

顶顶我自己再顶顶,

TOP

zm900612 大哥来了没?

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

TOP

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

TOP

哦.好的.谢谢zm900612 大哥

TOP

返回列表