如何在所有子文件夹中仅删除和创建特定文件夹

时间:2011-09-11 12:01:51

标签: batch-file

我只想删除一个子文件夹,该子文件夹显示在许多文件夹中。

例如,我有一个父文件夹Main sourceMain Source包含超过100个子文件夹。

每个文件夹都有一些常用文件夹,例如child_ABchild_BC

我想使用批处理文件删除“Parent”子文件夹中的所有子文件夹。

你能告诉我怎么做吗?


添加示例

D驱动器中显示的父文件夹 - > D:\Main_Source

Main_Source包含以下文件夹

LDAP_A1
LDAP_A2
LDAP_A3
LDAP_A4
LDAP_A5
......
......
So on...

每个LDAP文件夹都有child_ABchild_CD

我想删除每个子文件夹中的child_ABchild_CD

如何使用批处理文件删除每个子文件夹中的child_ABchild_CD

我是批处理文件编码的新手。

2 个答案:

答案 0 :(得分:0)

试试这个:

@ECHO OFF
SET "rootdir=D:\Main_Source"
FOR /D %%A IN ("%rootdir%\LDAP_*") DO (
  FOR /D %%B IN ("%%A\*") DO (
    IF "%%~nxB"=="child_AB" ECHO RMDIR /S /Q "%%B"
    IF "%%~nxB"=="child_CD" ECHO RMDIR /S /Q "%%B"
  )
)

外部循环遍历根文件夹中的父子文件夹,内部循环遍历父项的子子文件夹。

正如您所看到的,这个特定的脚本只是回显了一个RMDIR命令列表而不是实际执行它们。我建议您先验证它产生的路径,然后只删除ECHO个关键字并再次运行以继续实际删除。

答案 1 :(得分:0)

从Main_Source目录运行此脚本:

for /F "delims=" %%a in ('dir /ad /b') do (
    if exist "%%a\child_AB" rd /s /q "%%a\child_AB" 
    if exist "%%a\child_CD" rd /s /q "%%a\child_CD"
)

您可以添加echo命令进行调试。