批处理脚本,用于复制/删除与某个名称匹配的文件夹并保留其目录树

|| 我想知道是否可以为to0ѭ(目标系统:MS Windows 2k3)编写批处理脚本,以便执行以下操作: 让我们有一个文件夹“ѭ1”,其中包含许多文件和目录。某些子目录(处于不同级别)可能称为“ 2”。我想创建一个文件夹
rootfolder2
,复制
rootfolder
的目录树结构,但只包含文件夹
dirname
及其内容。我也想在ѭ3中复制相同文件夹后删除它们 例:
rootfolder
 `- dir1
 `- dir2
     `- filew
     `- dirname
         `- filey
 `- dirname
     `- file1
     `- dirx
         `- file2
 `- filez
我正在寻找的输出将是:
rootfolder
 `- dir1
 `- dir2
     `- filew
 `- filez

rootfolder2
 `- dir2
     `- dirname
         `- filey
 `- dirname
     `- file1
     `- dirx
         `- file2
我可以不必在C / C ++ / Java / etc中编写控制台应用程序吗? 提前致谢, 乔 这是使用xcopy和批处理脚本编写的问题的答案:
@echo off
setlocal ENABLEDELAYEDEXPANSION
set StartDir=Folder1
set BackupDir=Folder1 BK
mkdir \"%BackupDir%\"
call :ProcessDir \"%StartDir%\"
exit /b 0
:ProcessDir
    echo Processing directory \"%~1\"
    for /f \"delims=\" %%d in (\'dir /ad /b \"%~1\"2^>nul\') do (
        if \"%%d\"==\"foldername\" ( 
            xcopy /s /e /i \"%~1\\%%d\" \"%BackupDir%\\%~1\\%%d\" 
            rmdir /S /Q \"%~1\\%%d\"   
        ) else ( 
            call :ProcessDir \"%~1\\%%~d\"
        )
    )
    exit /b 0
致谢:递归重命名文件名+带有批处理文件的文件夹名     
已邀请:
  这是我的问题的答案,仅使用xcopy和批处理   脚本:   
@echo off
setlocal ENABLEDELAYEDEXPANSION
set StartDir=Folder1
set BackupDir=Folder1 BK
mkdir \"%BackupDir%\"
call :ProcessDir \"%StartDir%\"
exit /b 0
:ProcessDir
    echo Processing directory \"%~1\"
    for /f \"delims=\" %%d in (\'dir /ad /b \"%~1\"2^>nul\') do (
        if \"%%d\"==\"foldername\" ( 
            xcopy /s /e /i \"%~1\\%%d\" \"%BackupDir%\\%~1\\%%d\" 
            rmdir /S /Q \"%~1\\%%d\"   
        ) else ( 
            call :ProcessDir \"%~1\\%%~d\"
        )
    )
    exit /b 0
  学分至:   用批处理文件递归重命名文件名+文件夹名 这样就完成了!     

要回复问题请先登录注册