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

Cam*_*ron 6 windows windows-registry

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

谢谢

dja*_*fan 7

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


Maj*_*ion 5

摘自使用注册表项

如果您想删除HKCU:\CurrentVersion中的所有项目而不是 HKCU:\CurrentVersion本身,您可以使用:

#Requires -Version 3.0
Remove-Item -Path HKCU:\CurrentVersion\* -Recurse
Run Code Online (Sandbox Code Playgroud)

注意:属于HKCU:\CurrentVersion 的注册表值不会被删除。


GAT*_*awn 2

你提前知道子键是什么吗?如果是这样,您可以使用 .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]
Run Code Online (Sandbox Code Playgroud)

行开头的减号告诉它删除该键,完整语法如下: http: //support.microsoft.com/kb/310516

如果没有,那么您正在寻找一个脚本来枚举所有子项,然后将它们一一删除。我有一个可以在工作中执行此操作的工具,但我在家里却无法执行此操作!