3
Set args = WScript.Arguments
dim rec
rec = args.Item(1)&" "&args.Item(2)
return rec
我寫了上面這個簡單的VBScript,然後當我試圖從Java調用此代碼...得到一個類型不匹配錯誤在VBScript
import java.io.*;
class RuntimeDemo{
public static void main(String[] args) {
Process p=null;
try {
p=Runtime.getRuntime().exec("wscript D:/AS/VBScripts/Sample1.vbs " + args[0] +" " + args[1] + " " + args[2]);
}
catch(IOException e) {
System.out.println(e);
System.exit(0);
}
p.waitFor();
InputStream in = p.getInputStream();
for (int i = 0; i < in.available(); i++) {
System.out.println("" + in.read());
我得到一個錯誤"Type mismatch 'return'"
。這究竟是從哪裏來的,什麼是正確的解決方案?
你的答案的第一部分是發現,但第二部分是錯的。 [WshArguments](http://msdn.microsoft.com/en-us/library/x49bex47%28v=vs.84%29.aspx)的文檔在這方面並不十分清楚,但快速測試表明,你嘗試訪問一個不存在的參數,WScript只是拋出一個錯誤(它不返回Null)。另外,Null可以與一個字符串連接;它被視爲一個零長度的字符串([參考](http://msdn.microsoft.com/en-us/library/sx97884w%28v=vs.84%29.aspx))。 – 2014-11-06 07:12:09
啊,是的......沒有想法當我寫這些時我在想什麼!如果你嘗試訪問一個不存在的參數,它會拋出一個錯誤,因爲它在一個數組中,並且該元素將不存在。謝謝你指出,我會編輯答案,以確保準確的信息... – LarryF 2014-11-07 00:37:43