我需要将包含带文件的子文件夹的文件夹复制到另一台机器上的共享文件夹中。在此期间,脚本应在每个目标文件夹中创建自定义子文件夹,并将文件放在那里。
我希望这个例子能够完成任务:
对于以下源文件夹:
--Logs
----Application
------Service
--------Log1.txt
--------Log2.txt
------WebSite
--------Log1.txt
--------Log2.txt
目标文件夹应按以下方式创建:
--Logs
----Application
------Service
--------Machine1
----------Log1.txt
----------Log2.txt
------WebSite
--------Machine1
----------Log1.txt
----------Log2.txt
正如您在底层看到的那样,子文件夹Machine1
已创建。
你能否提供一个PowerShell脚本的例子来实现它?
我调查了ROBOCOPY命令中的输入参数。它似乎不允许这样做直截了当。
另外我知道我可以巧妙地遍历所有文件夹结构,创建所需的子文件夹并将文件复制到每个子文件夹。但它似乎是一种太长的方式。所以我想知道我是否遗漏了什么。也许有更聪明的方法来做到这一点。
答案 0 :(得分:3)
我建议使用robocopy
复制子文件夹的内容:
$srcBase = 'C:\some\Logs\Application'
$dstBase = 'D:\other\Logs\Application'
Get-ChildItem $srcBase | ? { $_.PSIsContainer } | % {
$dst = "$dstBase\$($_.Name)\Machine1"
& robocopy $_.FullName $dst /e
}