微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用批量添加REG_NONE空值?

此registry脚本在reg编辑器(它表示为二进制数据)中写入一个REG_NONE空值:

Windows Registry Editor Version 5.00 [HKEY_CURRENT_USERkeyname] "valuename"=hex(0):

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

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

移动文件很长时间没有被访问

文件夹中的每个文件运行命令,然后保存输出

批处理脚本多次执行Python脚本

Windows程序文件夹中世界可写batch file的安全问题

捕获VBScript中的任何错误

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

增加了数据:

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

我真的可以添加一个REG_NONE空值?

创build唯一的文件名Windows批处理

批处理 – 如果语句导致错误

Windows CMD写入带有转义序列的文件

监视特定模式的日志文件

这个recursion的Windows CMD脚本有什么问题? 它不会正确地做阿克曼

我发现迄今唯一令人讨厌的选项是创建一个.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是一个特殊的类型,由于实现细节(命令行工具针对字符串和多字符串进行了优化)只能由RegSetValueEx窗口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 )多字符串的选项

只是我的基于@KennyBOT的扩展解答回答:

:Add_Special_Value :: Support for adding an special registry value type. Set "KeyRoot=%~1" Set "KeyName=%~2" Set "ValueName=%~3" Set "ValueType=%~4" Set "ValueData=%~5" Set "RegFile=%TEMP%%ValueType%.reg" If /I "%KeyRoot%" EQU "HKCR" (Set "KeyRoot=HKEY_CLASSES_ROOT") If /I "%KeyRoot%" EQU "HKCU" (Set "KeyRoot=HKEY_CURRENT_USER") If /I "%KeyRoot%" EQU "HKLM" (Set "KeyRoot=HKEY_LOCAL_MACHINE") If /I "%KeyRoot%" EQU "HKCC" (Set "KeyRoot=HKEY_CURRENT_CONfig") If /I "%KeyRoot%" EQU "HKU" (Set "KeyRoot=HKEY_USERS") If /I "%ValueType%" EQU "REG_NONE" (Set "ValueType=hex^(0^)") If /I "%ValueType%" EQU "REG_RESOURCE_LIST" (Set "ValueType=hex^(8^)") If /I "%ValueType%" EQU "REG_RESOURCE_REQUIREMENTS_LIST" (Set "ValueType=hex^(a^)") If /I "%ValueType%" EQU "REG_FULL_RESOURCE_DESCRIPTOR" (Set "ValueType=hex^(9^)") ( Echo Windows Registry Editor Version 5.00 Echo [%KeyRoot%%KeyName%] Echo "%ValueName%"=%ValueType%:%ValueData% )>"%regFile%" REG.exe "Import" "%regFile%" DEL /Q "%regFile%" 2>NUL Goto :EOF

用法

Call :Add_Special_Value "HKCU" "MyKeyName" "MyValueName" "REG_NONE" "Binary data (If any)"

哦,大家不要忘记尝试我的应用程序,并报告我的错误(如果有的话):)

代码(VB.NET): http : //www.mediafire.com/download/1h3zbymfhnb3spt/REG2BAT.rar

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐