首页 > 解决方案 > Powershell 同步脚本尝试覆盖源文件而不是复制到目标

问题描述

这个脚本试图覆盖源文件而不是复制到目标,我不知道为什么。在将 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" }
    }
}

标签: linux-mintpowershell-core

解决方案


推荐阅读