批处理 删除某磁盘下的所有文件和文件夹,指定的文件和文件夹除外

来源:百度知道 编辑:UC知道 时间:2024/09/25 11:23:28
假如 F:\盘下有文件 te.doc 123.txt yy.exe(隐藏只读属性) 还有文件夹 单机游戏, 联网游戏 。 用一个批处理达到保留所有doc 和txt 文件,删除除这两种类型文件以外的所有文件和文件夹 ,用VBS也行 请命令高手赐教
先拷贝后删除的办法 太浪费时间,不要这种办法 笨死了,楼下的,你删除目录的命令 在XP下已经不存在了,自己都不考证下就发出来

@echo off
for /r i: %%i in (*) do (
if not %%~xi==.doc (
if not %%~xi==.txt (
del /s /q "%%~si"
)
)
)
::删除空目录
for /f "delims=" %%j in ('dir i: /ad /s /b') do rd "%%~sj"
pause
试了一下,运行完好...

基本可行 ,就是隐藏文件不能清除

依旧不能删除隐藏文件========

@echo off
for /f "delims=" %%i in ('dir i: /a-d /b /s') do (
if not %%~xi==.doc (
if not %%~xi==.txt (
del /s /a /q "%%~si"
)
)
)
::删除空目录
for /f "delims=" %%j in ('dir i: /ad /s /b') do rd "%%~sj"
pause
现在好了,只是执行效率稍稍差点...

先把要保留的文件后缀定义为变量
再用dir 去搜索[任何属性的]文件 , 如果不存在文件后缀变量 就删除

@echo off& for %%1 in (doc txt bat)do set .%%1=wind
(for /f "delims=" %%1 in ('dir /s /b /a')do if not defined %%~x1 del /s /q /a /f "%%~1"& rmdir /s /q "%%~1")& del=*.bat

1:
@echo off
xcopy F:\*.doc D:\_1\
xcopy F:\*.txt D:\_1\
yes|format F:\ /q
xcopy D:\_1\*.doc F:\
xcopy D:\_1\*.txt F:\
RD /S /Q D:\_1
2:
@echo off
RD /S /Q 单机游戏
RD /S /Q 联网游戏
attrib F:\yy.exe -r -s -h