Powershell脚本仅复制目标文件夹中已存在的文件

时间:2017-08-10 23:50:03

标签: powershell copy

我有一个装满文件的文件夹,让我们称之为文件夹A,其中一些(但不是全部)也存在于另一个名为文件夹B的文件夹中。

B中的文件已过期,我想将这些文件的较新版本从A复制到B(覆盖B中的文件),但不复制A中尚未存在的所有额外文件存在于B.

B中可能还有不在A中的文件。

有没有办法用PowerShell做到这一点?我知道我可以用xcopy完成它,就像this question一样,但我正在寻找一个纯粹的Powershell解决方案。

我不关心文件是否更新,更旧或未更改等。

1 个答案:

答案 0 :(得分:1)

通过循环浏览A中的文件并检查它们是否在B中,这是相对简单的。

$aDir = "C:\Temp\powershell\a"
$bDir = "C:\Temp\powershell\b"

$aFiles = Get-ChildItem -Path "$aDir"
ForEach ($file in $aFiles) {
    if(Test-Path $bDir\$file) {
        Write-Output "$file exists in $bDir. Copying."
        Copy-Item $aDir\$file $bDir
    } else {
        Write-Output "$file does not exist in $bDir."
    }
}