我在一個目錄中有 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
}
}