批处理bat删除某文件和文件夹除外的所有文件和文件夹

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了批处理bat删除某文件和文件夹除外的所有文件和文件夹相关的知识,希望对你有一定的参考价值。

比如我要将H:\tem2下除
文件 7za.exe 和 must.txt
文件夹 a 和 sdfg
外的所有文件和文件夹全删除,包括系统文件和隐藏文件
成功的话追加30分
canyuexiaolang回答的
第一次运行没问题,但第二次开始就有问题了,出现了询问H:\tem2\新建文件夹\*, 是否确认(Y/N)?
这下不就又要手动操作了吗?而已运行也不正确了,其他文件夹也删不了
而且第二次时我把a换成a\must.txt也就是a目录下的must.txt出现询问窗口后输入y或n回车后,must.txt和a文件夹里的文件都没了

能详细解释一下各个命令的含义吗?

如果是win7或vista,直接运行下面的批处理即可。如果是xp,需要先下载robocopy.exe。
如果需要增加排除的文件,就加到 /xf 后面(以空格隔开),排除的文件夹加到 /xd 后面(以空格隔开),文件夹和文件名如果含空格,需用 " "

robocopy h:\tem2 h:\xxxxyyyyzzzz /s /move /xf 7za.exe must.txt /xd a sdfg
rd /s /q h:\xxxxyyyyzzzz
参考技术A @echo off & setlocal enabledelayedexpansion
set "不删的文件(夹)=7za.exe must.txt a sdfg"
pushd "h:\tem2"
for /f "tokens=* delims=" %%i in ('dir /a /b /s') do (
setlocal
for %%a in (%不删的文件(夹)%) do if not defined 删不删? (if /i "%%~nxi"=="%%a" set "删不删?=false")
if not defined 删不删? attrib -s -h -r "%%i" & del "%%i" && echo %%~nxi 已经删除
endlocal
)
pause本回答被提问者和网友采纳

bat删除文件夹下,特定名以外的文件和文件夹

删除MA文件夹下特定名以外的文件夹
说明:MA文件夹下有一个printfile.csv的文件,还有很多文件夹
例入:printfile.csv文件,16文件夹,17文件夹,18文件夹等…
我要保留 printfile.csv文件,16文件夹,其它的文件和文件夹全部删除!
这个批处理怎样写。VBS脚本也可以。
那是一个软件的临时文件,每天会制动生成很多文件夹,不能全部删除,
一定要有printfile.csv文件,16是文件夹,软件才能正常工作, 16是文件夹名称。

二楼的对不起阿!本人菜鸟,是直接复制你的代码,没有看清楚你是以E盘MA文件夹为例,我的目录在C盘,所以我测试不成功。
你的这批处理行行好,本人受益颇多,谢谢你的帮助!

提个思路,将他们剪切至同盘,删除文件夹,然后建立MA文件夹,再剪切回来。
放在与Ma同一文件夹下即可
相关命令:move,md,rd
MA.bat
@echo off
md temp
move MA\printfile.csv temp
move MA\16 temp
rd /s /q Ma
md MA
move temp\printfile.csv MA
move temp\16 MA
rd temp
参考技术A @echo off
cd /d "e:\MA\"
for /f "delims=" %%a in ('dir /b/ad') do (
if "%%~na" neq "16" rd /s /q "%%~a"
)
for /f "delims=" %%b in ('dir /b *.* ') do (
if "%%~nb" neq "16" (
if "%%~nxb" neq "printfile.csv" del /q "%%~b"
)
)
exit

注意备份文件。
-------------------------------
代码已经测试,除非你没说清楚。另,请不要信口开河,要解决问题至少要有诚意,给实际例子出来!别拿个破例子然后给点可怜的分数,得了解答自己试验不正确还说别人的代码不能用,做人要懂得尺度,OK?本回答被提问者采纳

以上是关于批处理bat删除某文件和文件夹除外的所有文件和文件夹的主要内容,如果未能解决你的问题,请参考以下文章

bat删除当前目录指定后缀的文件夹?

如何让批处理按创建时间删除某文件夹下的文件

bat删除文件夹下,特定名以外的文件和文件夹

想要使用bat来删除某指定文件夹内的,指定天数以前的文件。

如何用一个批处理bat生成某文件夹和子文件夹下所有文件的绝对路径,分别写入到对应的txt中(一对一生成)

bat怎样删除指定文件夹内的指定后缀文件?