Windows批处理脚本,用于删除文件夹中除一个以外的所有内容

Windows批处理脚本,用于删除文件夹中除一个以外的所有内容,windows,command-line,batch-file,Windows,Command Line,Batch File,我有一个脚本可以删除文件夹中的所有子文件夹和文件: FOR /D %%i IN ("D:\myfolder\*") DO RD /S /Q "%%i" & DEL /Q "D:\myfolder\*.*" 而且效果很好! 唯一的问题是我想排除一个或多个文件夹,比如XCOPY排除功能 我简直想不出如何将其添加到脚本中。您可以尝试在for循环之前隐藏文件夹,然后将其取消隐藏,如下所示: ATTRIB +H D:\myfolder\keepit FOR /D %%i IN ("D:\myfo

我有一个脚本可以删除文件夹中的所有子文件夹和文件:

FOR /D %%i IN ("D:\myfolder\*") DO RD /S /Q "%%i" & DEL /Q "D:\myfolder\*.*"
而且效果很好! 唯一的问题是我想排除一个或多个文件夹,比如XCOPY排除功能


我简直想不出如何将其添加到脚本中。

您可以尝试在for循环之前隐藏文件夹,然后将其取消隐藏,如下所示:

ATTRIB +H D:\myfolder\keepit
FOR /D %%i IN ("D:\myfolder\*") DO RD /S /Q "%%i" DEL /Q "D:\myfolder\*.*"
ATTRIB -H D:\myfolder\keepit

“%%i”和DEL之间需要有一个&符号,否则它将删除文件夹,但不会删除文件。

这里有一种方法,它不会触及被排除的文件和/或目录,因此不会更改任何属性:

rem//更改到目标目录(如果找不到则跳过):
按“D:\Data”| |退出/B 1
rem//遍历所有子目录:
对于(“*”)中的/D%%D,请执行以下操作(
rem//排除某个子目录:
如果/I不是“%%~nxD”==“ExcludeDir”rd/S/Q“%%~D”
)
rem//遍历所有即时文件:
对于(“*”)中的%%F,请执行以下操作(
rem//排除某个文件:
如果/I不是“%%~nxD”==“ExcludeFile.txt”del“%%~F”
)
邻苯二胺

我应该说它也会删除文件,这也是目的所在。