Robocopy:复制文件保留文件夹结构但添加子文件夹

Robocopy:复制文件保留文件夹结构但添加子文件夹

我需要将包含子文件夹和文件的文件夹复制到另一台计算机上的共享文件夹。在此过程中,脚本应在每个目标文件夹中创建一个自定义子文件夹并将文件放置在那里。

我希望这个例子能够阐明任务:

  1. 对于以下源文件夹:

    --Logs
    ----Application
    ------Service
    --------Log1.txt
    --------Log2.txt
    ------WebSite
    --------Log1.txt
    --------Log2.txt
    
  2. 目标文件夹应按以下方式创建:

    --Logs
    ----Application
    ------Service
    --------Machine1
    ----------Log1.txt
    ----------Log2.txt
    ------WebSite
    --------Machine1
    ----------Log1.txt
    ----------Log2.txt
    

如您所见,底层Machine1已创建子文件夹。您能否提供一个可以执行此操作的 PowerShell 脚本示例?

我调查了命令中的输入参数ROBOCOPY。似乎它不允许我直接这样做。

我也知道我可以简单地遍历所有文件夹结构,创建所需的子文件夹并将文件复制到每个子文件夹,但这似乎太“长”了。所以,我想知道我是否遗漏了什么。也许有更好/更聪明的方法来做到这一点。

答案1

是否执行了这个快速而肮脏的代码......仍然在遍历文件夹......

$orgLoc = "test"
$desLoc = "dest"

Copy-Item -Path $orgLoc -Destination $desLoc -Recurse
$stuff = Get-ChildItem -Path $desLoc -Recurse
foreach($thing in $stuff){
    if($thing.Extension -eq ".txt"){
        $newDir = $thing.DirectoryName + "\Machine1"
        if(!(Test-Path $newDir)){
            New-Item -Path $newDir -ItemType Directory
        }
        Move-Item -Path $thing.FullName -Destination $newDir
    }
}

相关内容