Powershell 将多个密钥导出到一个 .reg 文件

Powershell Export Multiple Keys To One .reg File

我想将多个注册表项导出到同一个 .reg 文件。我看到的每个建议都显示使用 reg /e [key name] filename.reg,但我有一个 4-5 个注册表条目的列表,我想导出并且这样做每次都会覆盖它。 我想要的是这样的:

以便每个注册表项都附加到同一个 .reg 文件,而不是每次都被覆盖。我该怎么做?

最简单的方法是单独导出每个密钥,然后合并生成的文件:

$keys = 'HKLM\Software\Test\ABC', 'HKLM\Software\ABC3', ...

$tempFolder = 'C:\temp\folder'
$outputFile = 'C:\path\to\merged.reg'

$keys | % {
  $i++
  & reg export $_ "$tempFolder$i.reg"
}

'Windows Registry Editor Version 5.00' | Set-Content $outputFile
Get-Content "$tempFolder\*.reg" | ? {
  $_ -ne 'Windows Registry Editor Version 5.00'
} | Add-Content $outputFile

我在使用 Ansgar 解决方案时遇到错误,但我能够通过稍微修改它来使其工作。当第一次使用 set-content 时,add-content 将不起作用,因为文件正在使用中。

$keys = 'HKLM\Software\Test\ABC', 'HKLM\Software\ABC3', ... 

$tempFolder = $temp_cache
$outputFile = "C:\path\to\merged.reg"

$keys | % {
  $i++
  & reg export $_ "$tempFolder$i.reg" /y
}
Get-Content "$tempFolder\*.reg" | Set-Content $outputFile