首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用注册表文件删除注册表值?

如何使用注册表文件删除注册表值?
EN

Stack Overflow用户
提问于 2014-06-09 15:57:03
回答 1查看 1.7K关注 0票数 0

1.如何使用注册表文件删除注册表值?

我已经了解到,我可以在批处理文件中使用此命令向Windows注册表添加注册表值。

代码语言:javascript
复制
regedit "path\Reg File Name.reg"

该注册表文件包含:

代码语言:javascript
复制
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
"Title"="Path"

这很管用。

但是,当我想要删除注册表值Title并包含以下注册表文件时,不会发生任何事情:

代码语言:javascript
复制
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
"Title"="Path" =-

=-什么也不做。怎么解决这个问题?我做错什么了?

2.在用户登录后,如何在没有可见控制台窗口的情况下运行隐藏在后台的批处理文件?

我所做的是:

我创建了一个批处理文件:

代码语言:javascript
复制
wscript.exe "path\Script.vbs" "path\My File.bat"

VB脚本文件包含:

代码语言:javascript
复制
CreateObject("Wscript.Shell").Run """" & WScript.Arguments(0) & """", 0, False

这很管用。我点击了我的start.bat,它在后台启动了不可见的My File.bat

但是它并没有将文件Start.bat添加到Windows菜单中的Autostart文件夹中。当系统启动和我登录时,批处理文件和VB脚本都会真正运行,但是My File.bat不会被执行。

我的意思是,每件事都在我的批处理文件旁边工作,它应该在后台运行。

EN

回答 1

Stack Overflow用户

发布于 2014-06-09 16:36:41

为了删除注册表值,注册表文件必须如下所示。

代码语言:javascript
复制
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
"Title"=-

这个注册表文件只是删除注册表项Title下的名称HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run的值。

Regedit有一个可以静默运行的选项:/s

因此,下面的命令行将注册表文件的内容导入到注册表中,而不显示给用户的消息,除非使用的用户帐户不具有使用时所需的管理员权限。

代码语言:javascript
复制
%SystemRoot%\regedit.exe /s "path\Reg File Name.reg"

如果注册表文件只包含删除键或值的数据,则不会导入任何内容,只会悄悄删除键/值。

与使用regedit和注册表文件相比,仅删除单个值的一个更好的解决方案是使用命令reg

代码语言:javascript
复制
%SystemRoot%\system32\reg.exe delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v "Title" /f

在命令提示符窗口中运行命令reg /?,以获得有关命令、reg、reg delete /?的帮助,以获得有关如何删除注册表值或项的帮助。

使用命令regregedit相比的优点是,该命令在修改HKCU下的内容时不需要管理员特权,而regedit的使用需要管理员特权,即使是在当前用户注册表中进行修改时也是如此。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24124045

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档