如何从命令行将多行REG_SZ字符串添加到注册表?
时间:2020-03-06 14:55:59 来源:igfitidea点击:
作为Windows机器上的构建设置的一部分,我需要添加一个注册表项,我想从一个简单的批处理文件中进行操作。
该条目适用于第三方应用程序,因此格式是固定的。
该条目采用REG_SZ字符串的形式,但需要包含换行符。 0xOA字符作为分隔符。
我遇到了一些问题。
第一次尝试使用regedit加载生成的.reg文件。这失败了,因为它似乎既不喜欢长字符串也不喜欢带换行符的字符串。我发现导出工作正常,导入失败。我能够测试导出,因为第三方应用程序直接通过win32 api添加了类似的条目。
第二次尝试使用命令REG ADD,但是无论如何我都找不到添加换行符的所有内容,但最终都添加了文字字符串。
有任何想法吗?
解决方案
我们可以创建一个VBScript(.vbs)文件,并仅从批处理文件中调用它,前提是我们要在批处理中执行除此注册表更改之外的其他操作。在vbscript中,我们将看到以下内容:set WSHShell = CreateObject(" WScript.Shell") WSHShell.RegWrite" HKEY_LOCAL_MACHINE \ SOMEKEY"," value"," type"
我们应该可以使用google找到可能的类型值。
如果我们不受限于脚本语言,则可以使用Cwith
Registry.CurrentUser.OpenSubKey(@"software\classes\something", true).SetValue("some key", "sometext\nothertext", RegistryValueKind.String);