我正在尝试将参数加入到要传递给另一个脚本的字符串中。以下:
WScript.Echo(Join(WScript.Arguments))
给我一个错误:
Error: Wrong number of arguments or invalid property assignment
Code: 800A01C2
该语法有什么问题?
我正在尝试将参数加入到要传递给另一个脚本的字符串中。以下:
WScript.Echo(Join(WScript.Arguments))
给我一个错误:
Error: Wrong number of arguments or invalid property assignment
Code: 800A01C2
该语法有什么问题?
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)
另一个解决方案可以使用系统中的 ArrayList 对象完成:
Set oAL = CreateObject("System.Collections.ArrayList")
For Each oItem In Wscript.Arguments: oAL.Add oItem: Next
WScript.Echo Join(oAL.ToArray, " ")
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 在批处理文件中将其删除,依此类推。