9

我正在尝试将参数加入到要传递给另一个脚本的字符串中。以下:

WScript.Echo(Join(WScript.Arguments))

给我一个错误:

Error: Wrong number of arguments or invalid property assignment
Code: 800A01C2

该语法有什么问题?

4

3 回答 3

7

WshArgument对象不是数组,因此您不能Join()在它们上使用。你可以做的是这样的:

ReDim arr(WScript.Arguments.Count-1)
For i = 0 To WScript.Arguments.Count-1
  arr(i) = WScript.Arguments(i)
Next

WScript.Echo Join(arr)
于 2013-08-02T07:16:22.027 回答
2

另一个解决方案可以使用系统中的 ArrayList 对象完成:

Set oAL = CreateObject("System.Collections.ArrayList")
For Each oItem In Wscript.Arguments: oAL.Add oItem: Next
WScript.Echo Join(oAL.ToArray, " ")
于 2015-09-23T07:14:38.460 回答
1
            ReDim arr(WScript.Arguments.Count-1)
            For i = 0 To WScript.Arguments.Count-1
              arr(i) = """"+WScript.Arguments(i)+""""
            Next
            WScript.Echo Join(arr)

这将为每个参数添加引号,然后您可以使用 %~1 在批处理文件中将其删除,依此类推。

于 2019-11-13T23:26:53.783 回答