尝试将文件从一个目录批量替换到另一个目录中的文件。Windows 7

尝试将文件从一个目录批量替换到另一个目录中的文件。Windows 7

我在一个目录中有 200 多个文件,我需要先在另一个目录中使用 subs 搜索,找到后再进行替换。文件名相同。内容/大小通常不同。上次我必须这样做时,我有一个 Linux 环境,所以我整理了一个命令。我不知道如何在 Windows 中执行此操作。

答案1

我相信以下 PowerShell 脚本应该可以完成这项工作。它可能远非最佳,因为它对每个文件的原始文件夹进行完整的递归搜索,因此您可能需要考虑对其进行一些调整。我强烈建议先使用非关键数据和文件夹进行测试。我用一小组示例文件进行了一些测试,运行良好,但您环境中的文件可能不是那么简单。

请注意,如果您要查找的文件在原始文件夹中不存在,或者原始文件夹中有多个文件与要查找的文件同名,则可能会出现一些意外行为。

$DestDIR = 'C:\Destination'
$OrigDIR = 'C:\Origin'

Get-ChildItem $OrigDir | ForEach-Object {
    $OrigName = $_.Name
    $OrigPath = $_.FullName

    Get-ChildItem $DestDIR -Recurse | Where-Object {$_.Name -eq $OrigName} | ForEach-Object {
        $DestPath = $_.FullName
        Copy-Item $OrigPath $DestPath -Force
    }
}

相关内容