与Powershell同步文件夹-新建和编辑的文件
我正在尝试与Powershell同步2个文件夹。 比较和复制任何新文件都可以正常工作。但是我想另外复制在引用文件夹中修改的所有文件 下面的代码工作并复制在引用文件夹中创建的所有新文件与Powershell同步文件夹-新建和编辑的文件,powershell,Powershell,我正在尝试与Powershell同步2个文件夹。 比较和复制任何新文件都可以正常工作。但是我想另外复制在引用文件夹中修改的所有文件 下面的代码工作并复制在引用文件夹中创建的所有新文件 $folderReference = 'C:\Users\Administrator\Desktop\TestA' $folderToSync = 'C:\Users\Administrator\Desktop\TestB' $referenceFiles = Get-ChildItem -Recurse -Pa
$folderReference = 'C:\Users\Administrator\Desktop\TestA'
$folderToSync = 'C:\Users\Administrator\Desktop\TestB'
$referenceFiles = Get-ChildItem -Recurse -Path $folderReference
$FolderSyncFiles = Get-ChildItem -recurse -Path $folderToSync
$fileDiffs = Compare-Object -ReferenceObject $referenceFiles -DifferenceObject $FolderSyncFiles
foreach ($File in $fileDiffs){
try {
if ($File.SideIndicator -eq "<="){
$FullSourceObject = $File.InputObject.Fullname
$FullTargetObject = $File.InputObject.Fullname.Replace($folderreference, $folderToSync)
Write-Host "copy File: " $FullSourceObject
copy-Item -Path $FullSourceObject -Destination $FullTargetObject
}
}
catch {
Write-Error -Message "Something went wrong!" -ErrorAction Stop
}
}
$folderReference='C:\Users\Administrator\Desktop\TestA'
$folderToSync='C:\Users\Administrator\Desktop\TestB'
$referenceFiles=Get ChildItem-Recurse-Path$folderReference
$FolderSyncFiles=Get ChildItem-recurse-Path$folderToSync
$FileDiff=比较对象-引用对象$referenceFiles-差异对象$FolderSyncFiles
foreach($filediff中的文件){
试一试{
如果($File.SideIndicator-eq“我只想使用robocopy,它是专门为这类任务构建的,默认情况下包含在大多数现代版本的windows中:
robocopy C:\Source C:\Destination /Z /XA:H /W:5
/Z
-如果中断,则继续复制
/XA:H
-忽略隐藏文件
/W:5
-将故障等待时间缩短为5秒(默认为30秒)
值得一看的是,对于你能想到的每一种情况,都有许多不同的选择
例如,添加/MIR
,当从源代码中删除目标文件时,它将从目标文件中删除这些文件。我会使用robocopy,它是专门为这种类型的任务+1为robocopy构建的。你能分享你得到的错误消息吗?可能会在捕获中放入throw$\ucode>,看看错误是什么,但这只会复制ev从源到目标的任何东西。我的目标是只复制源文件夹中新的或修改过的文件。这也可能吗?不可能,如果源/目标相同,Robocopy不会复制文件。谢谢。我的工作方式比我想象的要简单!