将两组文件夹合并为新结构


0

我有两组文件夹,这是具有相同子文件夹(200+)的相同数据的两个版本。我需要使用批处理将集合组合成稍微新的结构。例如:

组A \文件夹1 \ A_files  
    \文件夹2 \ A_files  
    \ folder3 \ A_files 
组B \文件夹1 \ B_files  
    \文件夹2 \ B_files  
    \ folder3 \ B_files  

我需要像这样设置setA:

组A \文件夹1 \ A_files_folder \ A_files  
            \ B_files_folder \ B_files  
            \ A_files  
    \文件夹2 \ A_files_folder \ A_files  
            \ B_files_folder \ B_files  
            \ A_files  
    \ folder3 \ A_files_folder \ A_files  
            \ B_files_folder \ B_files  
            \ A_files  

基本上,setA得到两个新文件夹,一个用于A_files的副本,另一个用于将 B_files移入。最后,什么都不会从setA中删除,并且setB文件夹也将被删除。

简单,但难以解释。

谢谢你的帮助!


2
修改您的问题,以提供您到目前为止尝试过的内容。
Worthwelle

多少个文件夹?仅3个文件夹,只需手动复制文件。
harrymc

每套200多个文件夹
苏格兰威士忌

(1)我不明白您为什么同时拥有setA\folderN\A_filessetA\folderN\A_files_folder\A_files。(2)分解成更简单的步骤,和写脚本:(2A)移动setB\folder1\B_filessetB\folder1\B_files_folder\B_files(2B)执行此操作对所有folderN(2c)中做A(2d)的相同的移动所有B_files_foldersetBsetA
dirkt

Answers:


0

您可以在SuperUser上找到许多带有适当答案的类似问题,以了解如何开始为此编写脚本。由于您没有提到正在使用的操作系统,因此我将为Windows提供Powershell解决方案。

在setA的每个文件夹中创建新的子文件夹,然后遍历setA的文件并将其复制到适当的文件夹中A_files_folder

Foreach ($dir in Get-ChildItem -Directory -Recurse .\setA) { New-Item -Path $dir.FullName -Name "A_files_folder" -ItemType "Directory"; New-Item -Path $dir.FullName -Name "B_files_folder" -ItemType "Directory"; } 
Foreach ($file in Get-ChildItem -File -Recurse .\setA) { Copy-Item -Path $file.FullName -Destination $($file.DirectoryName + "\A_files_folder\") }

在处理作业的第二部分时,我们需要使用原始文件路径的一部分来创建目标路径,但这与上一个Copy-Item命令几乎相同。我会用这个:

Foreach ($file in Get-ChildItem -File -Recurse .\setB) { Move-Item -Path $file.FullName -Destination $(".\setA\" + $($file.DirectoryName.Split("\")[-1]) + "\B_files_folder\") }
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.