Batch file 删除父文件夹的内容,子文件夹除外

Batch file 删除父文件夹的内容,子文件夹除外,batch-file,Batch File,例如,我有 PATH\ParentFolder\SubFolder1\SubSubFolder11 PATH\ParentFolder\SubFolder1\SubSubFolder12 PATH\ParentFolder\SubFolder2\SubSubFolder21 我需要删除除子文件夹11之外的所有子文件夹 我认为最好的方法是循环并删除每个文件夹,除了子文件夹11。或者将文件夹标记为隐藏 (我是新来的)以下代码片段从更深层次开始遍历整个目录树,如果当前路径不包含元素子文件夹11,则删

例如,我有

PATH\ParentFolder\SubFolder1\SubSubFolder11
PATH\ParentFolder\SubFolder1\SubSubFolder12
PATH\ParentFolder\SubFolder2\SubSubFolder21
我需要删除除
子文件夹11
之外的所有子文件夹

我认为最好的方法是循环并删除每个文件夹,除了
子文件夹11
。或者将文件夹标记为隐藏


(我是新来的)

以下代码片段从更深层次开始遍历整个目录树,如果当前路径不包含元素
子文件夹11
,则删除文件和目录:

@echo关闭
setlocal EnableExtensions DisableDelayedExpansion
rem//在此处定义常量:
设置“_ROOT=PATH”
设置“\u EXCEPT=子文件夹11”
rem//从深到浅遍历目录树:
对于/F“delims=”%%D in('
目录/S/B/A:D“%\U根目录%\*”^排序/R
""做"(
rem//存储当前目录路径,并附加“\”:
设置“PDIR=%%~D\”
setlocal EnableDelayedExpansion
rem//检查路径是否包含要排除的目录名:
如果/I“!PDIR:\%\U除了%\=!”==“!PDIR!”(
未找到rem//Dir.name,因此删除文件:
del/Q“!PDIR!*.*”
rem//删除空的子目录:
rd“!PDIR!”“2>编号
)
端部
)
端部
退出/B

您只需将子文件夹移动到另一个位置并删除其余部分即可。否。除了这个。在我提出问题之前,我使用了这样的解决方案,但当光盘上没有可用空间,系统试图复制大量数据时,就会出现问题。
子文件夹11
的内容如何?你想留着它吗?是否有多个名为
子文件夹11
的文件夹?那么
子文件夹2
呢?它也应该被移除吗?不管怎样,你知道怎么做了,为什么不试试呢?@Dimargoriev:你能用
移动
试试吗?顺便说一下,它并不会移动内存中的每个字节,而只是更新文件系统中的目录项。通过
copy
ing执行此操作显然不是一个好的解决方案。您的问题是,除了subsubfolder之外,删除父文件夹是不可能的,
ParentFolder
永远不能删除,因为它是异常的容器
SubSubFolder11
。请您使用开场白的编辑功能来澄清您的问题,并发布您遇到困难的代码。