Arrays VB脚本写入多字符串注册表项
我正在编写一个脚本,查看IE的当前主页。如果它不是我们的内部网,我会获取该值并将其合并到secondary pages注册表项中 现在我已经知道了如何将它合并到一个数组中(假设有一些辅助页面……如果没有什么大不了的话)。我遇到的是,当我最终合并它时,似乎有一个额外的行。它快把我逼疯了。有什么想法吗?下面是函数。剧本还有很多,但这是最痛苦的部分。谢谢Arrays VB脚本写入多字符串注册表项,arrays,vbscript,Arrays,Vbscript,我正在编写一个脚本,查看IE的当前主页。如果它不是我们的内部网,我会获取该值并将其合并到secondary pages注册表项中 现在我已经知道了如何将它合并到一个数组中(假设有一些辅助页面……如果没有什么大不了的话)。我遇到的是,当我最终合并它时,似乎有一个额外的行。它快把我逼疯了。有什么想法吗?下面是函数。剧本还有很多,但这是最痛苦的部分。谢谢 Function AppendSecondary(StrComputer) objReg.GetstringValue HKEY_CURRENT_
Function AppendSecondary(StrComputer)
objReg.GetstringValue HKEY_CURRENT_USER, strKeyPath, ValueName, strValueMain
objReg.SetStringValue HKEY_CURRENT_USER, strKeyPath, ValueName, strValueMyMTD
set ws = WScript.CreateObject("Wscript.Shell")
strKeyPath=WS.RegRead(strKeyPathPath & ValueNameSecondary)
if vartype(strKeyPath)= vbArray + vbVariant then
arStrings = strKeyPath
else
arStrings = split(strKeyPath,chr(0))
redim preserve arStrings(ubound(arStrings)-3)
end If
redim preserve arStrings(ubound(arStrings)+1)
arstrings(ubound(arStrings))= strvaluemain
arstrings1 = join(arStrings,VBCRLF)
arstringsnew = Array(arstrings1)
objReg.SetMultiStringValue HKEY_CURRENT_USER, strKeyPath, ValueNameSecondary, arstringsnew
End Function
检查每个数组的最后一个元素,确保它不是空字符串(“”)或非打印字符,如Chr(10)或Chr(13)或vbCR、vbLF或vbCRLF。有趣的问题 出于好奇,为什么要合并一个数组,然后将其重新构建为一个数组
arstrings1 = join(arStrings,VBCRLF) 'merge
arstringsnew = Array(arstrings1) 'reassemble
不管怎样,我认为您对“chr(0)”的拆分造成了这个问题,简单的修改join命令也就足够了
arstrings1 = trim(join(arstrings,vbcrlf))
如果不是这样的话,一个快速循环
dim nArray() : Redim nArray(0)
for each str in arstrings
if len(str)>0 then
nArray(ubound(nArray)) = str
redim preserve nArray(ubound(nArray)+1)
end if
next
arrstringsnew = nArray