繁体   English   中英

如何搜索文件夹名称和删除子文件夹,但不搜索文件夹

[英]How to search folder name and delete sub folders, but not searched folder

我需要一个批处理文件,提示用户输入文件路径以及文件夹名称中的前3个字母。 然后批处理开始并删除这三个字母的文件夹中的所有文件夹和文件,但保持文件夹以这三个字母开头。 我得到了一个批处理文件,该文件删除了文件夹和子文件夹中的所有文件,但是我还需要它来删除子文件夹。 这是我删除所有文件的代码:

@echo off
set /p filepath=Path to Main Directory: 
set /p string=First Letters of Sub-Folders to be Cleansed: 
FOR /D %%G in ("%filepath%\%string%*") DO del "%%G\*.*" /q /s
echo Done
pause

然后,我尝试了许多不同的方法来删除%%G子文件夹。 我知道它在这里命名%%G的子文件夹的位置:

@echo off
set /p filepath=Path to Main Directory: 
set /p string=First Letters of Sub-Folders to be Cleansed:
FOR /D %%G in ("%filepath%\%string%*") DO for /r /d %%i in (%%G\*) do del "%%G\*.*" /q && echo %%i
echo Done
pause

但是,当我尝试最后添加&& rd /s /q %%i时,它说找不到文件和路径。

无需递归在“ exp1”文件夹中查找文件夹。 您可以简单地使用FOR / D列出子文件夹,然后使用RD / Q / S删除植根于每个子文件夹的整个文件夹层次结构。 另外,由于无论如何都删除了所有子文件夹,因此无需进行递归文件删除。

@echo off
set /p filepath=Path to Main Directory:
set /p string=First Letters of Sub-Folders to be Cleansed:
for /d %%G in ("%filepath%\%string%*") do (
  del "%%G\*" /q
  for /d %%F in ("%%G\*") do rd /s /q "%%F"
)
echo Done
pause

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM