Arrays VB脚本写入多字符串注册表项

Arrays VB脚本写入多字符串注册表项,arrays,vbscript,Arrays,Vbscript,我正在编写一个脚本,查看IE的当前主页。如果它不是我们的内部网,我会获取该值并将其合并到secondary pages注册表项中 现在我已经知道了如何将它合并到一个数组中(假设有一些辅助页面……如果没有什么大不了的话)。我遇到的是,当我最终合并它时,似乎有一个额外的行。它快把我逼疯了。有什么想法吗?下面是函数。剧本还有很多,但这是最痛苦的部分。谢谢 Function AppendSecondary(StrComputer) objReg.GetstringValue HKEY_CURRENT_

我正在编写一个脚本,查看IE的当前主页。如果它不是我们的内部网,我会获取该值并将其合并到secondary pages注册表项中

现在我已经知道了如何将它合并到一个数组中(假设有一些辅助页面……如果没有什么大不了的话)。我遇到的是,当我最终合并它时,似乎有一个额外的行。它快把我逼疯了。有什么想法吗?下面是函数。剧本还有很多,但这是最痛苦的部分。谢谢

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