如何使用批处理文件删除 HKCR windows 10 下的所有条目? [关闭]
Posted
技术标签:
【中文标题】如何使用批处理文件删除 HKCR windows 10 下的所有条目? [关闭]【英文标题】:How to Delete all entries under HKCR windows 10 using batch file? [closed] 【发布时间】:2021-08-24 23:39:08 【问题描述】:如何删除 HKCR 注册表项下的所有条目?
我尝试了以下但没有工作
reg delete HKCR /f
【问题讨论】:
为什么有人要出于合法目的清除 HKCR 密钥?这会清除大量注册信息,以致系统实际上无法使用。 @RemyLebeau 用于学习目的。 @KJ 你有什么程序吗? 【参考方案1】:继续破坏你的系统:
据我了解,您需要使用ROOTKEY\SubKey
,所以如果没有子密钥,我怀疑它会起作用,尽管我没有傻到尝试它。
我希望您需要在 For /F
循环中枚举所有***子键,然后对每个结果执行 Delete
:
打开cmd 窗口,输入以下内容,然后按ENTER:
For /F Delims^= %G In ('%SystemRoot%\System32\reg.exe Query HKCR') Do %SystemRoot%\System32\reg.exe Delete "%G" /F 1>NUL 2>&1
要以batch-file 的身份执行此操作,它看起来像这样:
@For /F Delims^= %%G In ('%SystemRoot%\System32\reg.exe Query HKCR'
) Do @%SystemRoot%\System32\reg.exe Delete "%%G" /F 1>NUL 2>&1
顺便说一句,as mentioned by KJ, in the comments 在正确的问题下,HKEY_CLASSES_ROOT 键不像其他键那样真正是根键,它实际上是HKEY_LOCAL_MACHINE\SOFTWARE\Classes
和HKEY_CURRENT_USER\SOFTWARE\Classes
ROOTKEY\SubKey 对的组合。因此,也许您应该看看如果您尝试删除这两者会发生什么,因为Delete
命令适用于这些。
只有一行batch-file
@For %%G In (LM CU) Do @%SystemRoot%\System32\reg.exe Delete "HK%%G\SOFTWARE\Classes" /F 1>NUL 2>&1
2>&1
是可选的,如果您想查看任何错误消息。
【讨论】:
我尝试了相同但没有工作。我在上面保存为 .bat 但运行后条目仍然存在For /F Delims^= %G In ('%SystemRoot%\System32\reg.exe Query HKCR') Do %SystemRoot%\System32\reg.exe Delete "%G" /F 1>NUL 2>&1
好!如果删除 2>&1
会发生什么?
没什么。这是截图ibb.co/8jrzQVf
那是[batch-file],你的问题和标签没有提到批处理文件,你使用了[cmd]标签,它用于在Windows命令提示符中输入的命令,即命令.exe。我已经编辑了答案以包含批处理文件版本,并编辑了您的问题以包含您应该使用的标签!
运行后,我弹出了cmd窗口,这很好,但什么也没发生。截图ibb.co/mGKwC3F【参考方案2】:
正如你所展示的那样,没有办法用reg delete
做你所要求的事情,因为在命令行上运行reg delete /?
时,根据文档指定HKCR
本身是非法的:
REG DELETE KeyName [/v ValueName | /ve | /va] [/f]
KeyName [\\Machine\]FullKey
Machine Name of remote machine - omitting defaults to the current machine.
Only HKLM and HKU are available on remote machines.
FullKey ROOTKEY\SubKey
ROOTKEY [ HKLM | HKCU | HKCR | HKU | HKCC ]
SubKey The full name of a registry key under the selected ROOTKEY.
ValueName The value name, under the selected Key, to delete.
When omitted, all subkeys and values under the Key are deleted.
/ve delete the value of empty value name (Default).
/va delete all values under this key.
/f Forces the deletion without prompt.
Examples:
REG DELETE HKLM\Software\MyCo\MyApp\Timeout
Deletes the registry key Timeout and its all subkeys and values
REG DELETE \\ZODIAC\HKLM\Software\MyCo /v MTU
Deletes the registry value MTU under MyCo on ZODIAC
注意KeyName
是如何定义为[\\Machine\]FullKey
和FullKey
是如何定义为ROOTKEY\SubKey
的,这意味着在将HKCR
指定为ROOTKEY
时,您必须指定一个特定的SubKey
。不能省略SubKey
。
因此,您将不得不枚举HKCR
下的子键(例如reg query
),一次删除每个子键。
【讨论】:
你有确切的命令吗? 嘿,这不是为了让我的电脑清晰。我在虚拟机上学习。以上是关于如何使用批处理文件删除 HKCR windows 10 下的所有条目? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
windows批处理问题,如何批量删除某几个子文件夹下面,文件名包含特定字符串的所有文件?
如何编辑一个windows bat批处理文件 删除多余的文件名和后缀