仅当目标文件较小或不存在时,Windows 脚本才将文件从源复制到目标

仅当目标文件较小或不存在时,Windows 脚本才将文件从源复制到目标

我有两个包含类似文件的目录

C:\dir1 和 C:\dir2

我需要创建一个脚本,将目录 1 的内容复制到目录 2,但仅当源文件比目标文件大或文件不存在时才复制文件。

我还没有找到使用 powershell 或 cmd 来执行此操作的方法。

答案1

Get-ChildItem "C:\Dir1" | Where-Object {-Not $_.PsIscontainer} | % {
    $file1 = $_.FullName;
    $file2 = $file1 -replace ("C:\Dir", "C:\Dir2")
    If (Test-Path $file2)
    {
        $file1s=$_.Length
        $file2s=(Get-Item $file2).Length
        if ($file1s -gt $file2s)
        {
            Copy-Item $file1 "C:\Dir2" -Force
        }
    }
    else
    {
        Copy-Item $file1 "C:\Dir2"
    }
}

相关内容