删除注册表项中的所有子项

删除注册表项中的所有子项

是否有一种简单(自动化)的方法来删除 Windows 注册表中某个键的所有子键,而不删除该键本身?

谢谢

答案1

您事先知道子键是什么吗?如果知道,您可以使用 .reg 文件执行此操作,使用类似下面的命令删除 Test 的所有子键:

Windows Registry Editor Version 5.00

[-HKEY_LOCAL_MACHINE\Software\Test\Key1]
[-HKEY_LOCAL_MACHINE\Software\Test\Key2]
[-HKEY_LOCAL_MACHINE\Software\Test\Key3]
[-HKEY_LOCAL_MACHINE\Software\Test\Key4]

行首的减号表示删除该键,完整语法如下:http://support.microsoft.com/kb/310516

如果没有,那么您正在寻找一个脚本,该脚本将枚举所有子键,然后逐个删除它们。我有一个可以在工作时执行此操作的脚本,但我在家,无法使用它!

答案2

在 Windows7 或 Vista 中,您可以使用如下 Powershell 命令,以与引用文件系统路径相同的方式引用注册表路径:

Remove-Item -Path HKLM:\Software\Test\Key1 -Recurse
Remove-Item -Path HKLM:\Software\Test\Key2 -Recurse
Remove-Item -Path HKLM:\Software\Test\Key3 -Recurse
Remove-Item -Path HKLM:\Software\Test\Key4 -Recurse

答案3

摘自使用注册表项

如果你想删除HKCU:\当前版本不是 HKCU:\当前版本你也可以使用:

#Requires -Version 3.0
Remove-Item -Path HKCU:\CurrentVersion\* -Recurse

注意:属于HKCU:\当前版本不会被移除。

答案4

New-Item $path -Force

这个-Force论点起了作用。

相关内容