将数据从一台服务器复制到另一台服务器,仅复制特定文件夹树中的 replace/overwrite 0KB 文件

Copying data from 1 server to another to only replace/overwrite 0KB files in a specific folder tree

我是 PS 的新手,我想知道是否有人可以帮助我解决 PS 脚本问题。

我需要从使用 MailMeter Archiver 作为备份工具的服务器恢复数据(这不是我的想法)。当公司在较新的服务器上升级到 MSS2008R2 时,他们试图将备份从旧服务器复制到新服务器。

虽然复制了很多数据,但留下了0KB个文件和文件夹结构。数据在旧服务器上还完好无损,但实时数据已经更新,所以我不能只将存档数据复制过来。

我编写了一个搜索脚本,以在其文件夹结构中找到所有 0KB 文件,

Get-ChildItem -Path C:\%Folders% -Recurse -Filter *.* | Where {$_.Length -eq 0} | Select-Object FullName | Add-Content -Path C:\Test\%filename% 

但我仍然坚持如何编写脚本读取输出文件、搜索旧服务器目录、复制文件并覆盖 0KB 中的文件具有原始数据的文件夹结构...缺少 ~37000 个数据项...指针?有人吗?

不确定你到底想做什么。所以基本上用旧结构的原件覆盖所有 0kb 文件?像这样?

$oldDir = "C:\server1"
$newDir = "C:\server2"

# get all 0kb files
Get-ChildItem $newDir -Recurse -Filter *.* | where { $_.Length -eq 0 } | foreach {
    # get original path and copy/overwrite
    Copy-Item $_.FullName.Replace($newDir, $oldDir) $_.FullName -Force -Confirm:$false
}

让我知道这是否是您需要的。