VBScript创建列表,拆分列表项并修剪它们

时间:2019-05-22 08:15:35

标签: vbscript

我正在尝试创建将变量添加到列表的代码。然后,它将所有列表元素除以:,仅返回第二部分。最后,所有返回的字符串将被修剪。

为了让您更好地理解,让我给您看一个例子:

  1. 在列表中添加“ a:b”和“ c:d”。
  2. 分割元素,因此仅返回“ b”和“ d”。
  3. 修剪“ b”和“ d”。

到目前为止,我想出了类似的方法,但是它不起作用,我也不知道为什么。

Set list = CreateObject("System.Collections.ArrayList")
list.Add "bob : kid"
list.Add "ryan : alex"
list.Add "kate : andy"
list.Add "alice : mandy"
For Each item In list
    Dim item As String
    Dim words As String() = item.Split(New Char() {":"c})
    For Each word In words
        WScript.Echo word
    Next
Next 

1 个答案:

答案 0 :(得分:1)

您的代码无效,因为它不是有效的VBScript。您有几个问题:

  • VBScript不支持类型化变量声明(Dim var As Type)。如果要显式定义变量,请使用Dim var。但是请注意,在VBScript中,仅在将Option Explicit放在脚本开头时才需要定义变量。
  • VBScript不支持变量的声明和定义(Dim var = value)。您需要两个单独的语句来定义变量并为其分配值。通过用冒号(Dim var : var = value)分隔两个语句,可以将它们放在一行中,但是它们仍然是两个单独的语句。
  • 在VBScript中,字符串是原始数据类型。 VBScript字符串不是具有属性的对象。要拆分字符串,请使用Split()函数。
  • 不要在循环中重新定义循环变量。

将循环更改为类似的内容,它应该可以执行您想要的操作:

For Each item In list
    Dim words : words = Split(item, ":")
    For Each word In words
        WScript.Echo Trim(word)
    Next
Next

如果只需要每个拆分项目中的第二个元素,则可以执行以下操作:

Dim words : words = Split(item, ":")
WScript.Echo Trim(words(1))

或类似这样:

WScript.Echo Trim(Split(item, ":")(1))