한 디렉터리에서 파일이 있는 다른 디렉터리로 파일을 대량 교체하려고 합니다. 윈도우 7

한 디렉터리에서 파일이 있는 다른 디렉터리로 파일을 대량 교체하려고 합니다. 윈도우 7

단일 디렉터리에 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
    }
}

관련 정보