加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

windows – 如何使用Batch添加REG_NONE空值?

发布时间:2020-12-14 01:53:53 所属栏目:Windows 来源:网络整理
导读:此注册表脚本在reg编辑器中写入REG_NONE空值(表示为二进制数据): Windows Registry Editor Version 5.00[HKEY_CURRENT_USERkeyname]"valuename"=hex(0): (上图中数据描述的英文翻译是:“零长度二进制值”) 我需要在批处理中重现相同(以改进Reg2Bat转换器)
此注册表脚本在reg编辑器中写入REG_NONE空值(表示为二进制数据):

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USERkeyname]
"valuename"=hex(0):

(上图中数据描述的英文翻译是:“零长度二进制值”)

我需要在批处理中重现相同(以改进Reg2Bat转换器),但是当我尝试这样做时:

REG ADD "HKCUkeyname" /V "valuename" /T "REG_NONE" /D "" /F

它增加了数据:

也许reg.exe命令与REG_NONE值类型不兼容? (命令帮助说它支持的值但是……你看到了)

我怎么能真正添加??一个REG_NONE空值?

解决方法

到目前为止我发现的唯一令人讨厌的选项是创建一个.reg文件并导入一个:

call :regnone HKEY_CURRENT_USER "keyname" valuename

goto :eof

:regnone
rem create a reg file
echo Windows Registry Editor Version 5.00 > none.reg
echo [%~1%~2] >> none.reg
echo "%~3"=hex(0): >> none.reg

rem import it the registry
reg import none.reg 

del /q none.reg    

goto :eof

REG_NONE是一种特殊类型,由于实现细节(命令行工具针对String和多字符串进行了优化),只能通过RegSetValueEx windows api使用零长度二进制值创建.像WMI提供者那样的高级api只允许SetBinaryValue,并且没有SetNoneValue.在REG旁边还有一个选项可以使用wmic,它在WMI提供程序上稍微靠近但是仍然不允许你创建一个REG_NONE类型(它确实能让你创建零长度REG_BINARY,REG也无法使用)去做)

使用此命令可以获得的最接近的空二进制值(由MC ND提供)

reg add "hkcuvolatile environment" /v test /t reg_binary

是一个两个零字节:00 00,由两个空字符终止(未提供选项/ d)多字符串引起

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读