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