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

Eri*_*ric 2 windows registry powershell export key

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

  • 导出HKLM\Software\Test\ABC RegFile.reg
  • 导出HKLM\Software\ABC\123 RegFile.reg
  • 出口HKLM\Software\XYZ\Lala RegFile.reg

这样每个注册表项都会附加到同一个.reg文件中,而不是每次都被覆盖.我怎样才能做到这一点?

Ans*_*ers 6

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

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

$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
Run Code Online (Sandbox Code Playgroud)

  • @Eric如果将输出文件放在与输入文件相同的文件夹中,则需要确保将该文件排除在"Get-Content"处理之外.或者在继续编写输出文件之前完全读取所有内容. (2认同)