2016-08-13 168 views
-1

我试图搜索我有的问题,但无法找到任何联机。 她是我想做的事情:当我运行test.vbs文件时,我接受用户输入,然后将它传递给批处理文件。800A01C2 - 错误的参数数量或无效的财产分配

我得到这个错误:

800A01C2 - Wrong number of arguments or invalid property assignment

在VBScript代码行4。

这里是我的test.vbs代码:

Set WshShell = CreateObject("WScript.Shell") 
strInput = InputBox("Please enter the date (yyyymmdd)", "Enter Date") 
set strInput = WScript.Arguments 
WshShell.Run "mybatch.bat" & strInput, 0 

只是一个简单的代码输出从VBS传递到批处理文件中的参数:

echo Parameter = %1 > Var.txt 

回答

3

WScript.Arguments是一个对象,所以是strInput(按转让)。字符串连接运算符&可以连接字符串(和字符串化的发起者),但不能连接对象。证据:

>> a = "a " & WScript.Arguments 
>> 
Error Number:  450 
Error Description: Wrong number of arguments or invalid property assignment 

所以

WshShell.Run "mybatch.bat" & strInput, 0 

一定会失败。因此,删除作业并使用从InputBox()函数中获取的字符串,或者从Arguments集合中获取项目(不包括Set)。

无论如何确保“mybatch.bat”和参数之间有一个空格/空格。

+0

非常感谢。这样可行! – Josie

+0

@Josie如果你发现它解决了你的问题,请考虑[接受答案](http://meta.stackoverflow.com/a/5235)。 –