似乎reg delete
不适用于末尾有空格的键。我正在尝试删除带空格的键,例如:
"HKCU\Software\Microsoft\Sample "
有没有人知道如何删除它,我已经使用replace和trim函数转换注册表没有空格,但不幸的是我无法让它工作。
RegDeleteKey "Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\samplekey ", "TMPUSER"
Function SetKeys(SID)
RegDeleteKey "Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\sampleykey ", SID
End Function
Sub RegDeleteKey(KeyPath, Mode)
Dim CMD
If Mode = "TMPUSER" Then
KeyPath = "TMPUSER\" & KeyPath
Else
KeyPath = Mode & "\" & KeyPath
End if
CMD = "REG DELETE " & chr(34) & "HKEY_USERS\" & KeyPath & chr(34) & " /f"
objshell.Run CMD, 0, True
End Sub
答案 0 :(得分:4)
根本不需要使用reg.exe
。 WshShell object有一个RegDelete
method。文档说:
通过使用最终反斜杠结束
strName
来指定键名;请将其保留以指定值名称。
因此...
Dim Shell: Set Shell = CreateObject("WScript.Shell")
If TryRegDelete("HKCU\Software\Microsoft\Sample \") Then
WScript.Echo "Success!"
Else
WScript.Echo "Could not delete key."
End If
Function TryRegDelete(strName)
On Error Resume Next
Shell.RegDelete(strName)
TryRegDelete = Err.Number = 0
On Error GoTo 0
End Function