あるディレクトリのファイルを別のディレクトリのファイルに一括置換しようとしています。Windows 7

あるディレクトリのファイルを別のディレクトリのファイルに一括置換しようとしています。Windows 7

1 つのディレクトリに 200 以上のファイルがあり、最初にサブディレクトリでそれらのファイルを検索し、見つかったら置換する必要があります。ファイル名は同じです。内容とサイズは通常異なります。前回これを実行した時は 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
    }
}

関連情報