PowerShell仅复制新添加的文件夹和电子邮件结果

时间:2015-02-03 21:18:51

标签: windows powershell powershell-v3.0 windows-server-2012

是否可以仅从源位置复制已添加的新文件夹。

我有一个Source位置,每5分钟更新一次文件夹。 PS1脚本将每5分钟运行一次,并将所有文件夹复制到目标位置。

我遇到的问题是 - 它正在复制所有内容,我只希望它匹配已经复制过的内容而只复制新添加的文件夹,而不是再次复制已经存在的所有内容。这可能吗?

另外,如果可能只复制一次最近添加的文件夹,那么脚本可以通过电子邮件发送完成这个已完成的内容吗?

到目前为止,我有以下内容:

Copy-Item -Recurse \\192.168.1.37\d$\Transactions\* -Destination  D:\UK_Copy\Transactions_Bk -Force –Verbose

1 个答案:

答案 0 :(得分:0)

您可以创建一个只循环的脚本。类似的东西:

$Source = "\\192.168.1.37\d$\Transactions\"
$Destination = "D:\UK_Copy\Transactions_Bk"
$LastScan = Get-ChildItem $Destination -recurse
While(1 -lt 2){
    $NewScan = Get-ChildItem $Source -recurse
    Compare-Object $NewScan -DifferenceObject $LastScan -Passthru | Copy-Item -Destination ($_.DirectoryName -replace [regex]::escape($source),$Destination) -force
    $LastScan = $NewScan
    Start-Sleep 300
}

这将获得目标中的文件列表,然后在源中查找新文件,或者与目标相比已更改的文件并将其复制。然后它将该扫描设置为要比较的最后一个已知列表,休眠5分钟,并再次循环查找自上次扫描以来新的或更新的文件。