嘗試將一個目錄中的檔案批次替換到另一個目錄中找到該檔案的位置。 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
    }
}

相關內容