此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不兼容? (命令帮助说它支持的价值,但是…你看到)
创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] 举报,一经查实,本站将立刻删除。