是否可以仅从源位置复制已添加的新文件夹。
我有一个Source位置,每5分钟更新一次文件夹。 PS1脚本将每5分钟运行一次,并将所有文件夹复制到目标位置。
我遇到的问题是 - 它正在复制所有内容,我只希望它匹配已经复制过的内容而只复制新添加的文件夹,而不是再次复制已经存在的所有内容。这可能吗?
另外,如果可能只复制一次最近添加的文件夹,那么脚本可以通过电子邮件发送完成这个已完成的内容吗?
到目前为止,我有以下内容:
Copy-Item -Recurse \\192.168.1.37\d$\Transactions\* -Destination D:\UK_Copy\Transactions_Bk -Force –Verbose
答案 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分钟,并再次循环查找自上次扫描以来新的或更新的文件。