是否有一种简单(自动化)的方法来删除 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
论点起了作用。