将文件夹集合复制到部分

时间:2017-03-28 09:53:43

标签: windows copy

我有一系列文件,大小可达33 + GB,

这些文件有415个文件夹。

CD0001
CD0002
CD0003
CD0004
CD0005
CD0006
etc, etc...

这些是更新的文件/文件夹,每个季度都有一个新的更新程序,而且你可能已经知道它正在酝酿中。

我们将它们分成1-27部分,将它们分成约800-1.5GB的部分。 (每件约1GB开始)

我希望有人可以帮我创建的是我可以运行的脚本,它将CD *文件夹复制到各自的Parts文件夹,而不必每次都进入文件夹并检查它们是否存在

即。

See folder C:\temp\updates\CD0001  
Looks for CD0001 in all parts folders (example \\\server1\program\part*\\*)  
Removes Old CD* folder.  
Copies in New CD* folder.

当我开始使用这些部件时,CD之间存在间隙,如CD0001-CD0255和CD0330-CD0880等。

几个季度后,他们发布了CD0280,CD0281,CD0282等,但它们太大了。

所以我需要制作一个Part28,然后连续性被破坏......:)

它也是一个SVN系统,因此我无法将CD从第2部分移到第3部分。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

如果其他人偶然发现了这一点,

做了一个快速的,我可以让列表更好,但是......

$Source = "<SourcePath>"

$Part01 = "Destination_Part01"
$Part02 = "Destination_Part02"
$Part03 = "Destination_Part03"
$Part04 = "Destination_Part04"
$Part05 = "Destination_Part05"
$Part06 = "Destination_Part06"
$Part07 = "Destination_Part07"
$Part08 = "Destination_Part08"
$Part09 = "Destination_Part09"
$Part10 = "Destination_Part10"
$Part11 = "Destination_Part11"
$Part12 = "Destination_Part12"
$Part13 = "Destination_Part13"
$Part14 = "Destination_Part14"
$Part15 = "Destination_Part15"
$Part16 = "Destination_Part16"
$Part17 = "Destination_Part17"
$Part18 = "Destination_Part18"
$Part19 = "Destination_Part19"
$Part20 = "Destination_Part20"
$Part21 = "Destination_Part21"
$Part22 = "Destination_Part22"
$Part23 = "Destination_Part23"
$Part24 = "Destination_Part24"
$Part25 = "Destination_Part25"
$Part26 = "Destination_Part26"
$Part27 = "Destination_Part27"

$PartList ($Part01,$Part02,$Part03,$Part04,$Part05,$Part06,$Part07,$Part08,$Part09,$Part10,$Part11,$Part12,$Part13,$Part14,$Part15,$Part16,$Part17,$Part18,$Part19,$Part20,$Part21,$Part22,$Part23,$Part24,$Part25,$Part26,$Part27)

ForEach ($Item in $PartList) {
$CDList = get-childitem -Directory -name $item
$PartPath = $item
ForEach ($Item in $CDList) {
    If (Test-Path "$PartPath\$Item") {
        If (Test-Path "$Source\$Item") {
            Write-Host "Replace is True"
            Write-host "Copying $Source\$Item to $PartPath\$Item"
            Robocopy "$Source\$Item" "$PartPath\$Item" /E /Purge /NP /TEE /FFT /R:1 /W:1 /Log:"C:\temp\Logs\$Item.log"
            write-host "$Source\$Item Processed"
            move-Item -Path "$Source\$Item" "$Source\Processed"
            }
        }
    }
}