Этот сценарий пытается перезаписать исходные файлы, а не копировать в место назначения, и я не уверен, почему.До обновления Powershell Core до 6.1 он функционировал как задумано.Сценарий предназначен для синхронизации музыкального каталога без включения папок.
if (Test-Path /fileserver/MP3playerMusic)
{
$sourcefiles = Get-ChildItem /fileserver/MP3PlayerMusic -Recurse | where {$_.PSIsContainer -eq $false -and $_.Extension -ne ".dat"}
$destinationfiles = Get-ChildItem /home/username/Music -Recurse | where {$_.PSIsContainer -eq $false -and $_.Extension -ne ".dat" }
$destinationdirectories = "/home/username/Music"
$filedifferenceobject = Compare-Object -ReferenceObject $sourcefiles -DifferenceObject $destinationfiles
$filedifferenceobject | foreach { $copyparams = @{'path' = $_.inputobject.fullname}
if ( $filedifferenceobject.sideindicator -eq '<=' )
{ "files are not synced"
"Syncing files"
$copyparams.Destination = $destinationdirectories
Copy-Item @copyparams -Verbose
}
else
{ "files are synced" }
}
}