簡體   English   中英

從批處理調用VBS時出現運行時錯誤

[英]Runtime Error when Calling VBS from Batch

批處理代碼(選項1)

我通常使用它來簡單地從批處理中調用vbs,不包含任何變量。

@echo off
myVBSpath=\\UNC\path
set vbsFileName=myVBS.vbs
cscript "%myVBSpath%\%vbsFileName%"
pause

批處理代碼(選項2)

我通常在將變量從批處理傳遞到VBS時使用此選項...在vbs文件路徑和名稱之后包括變量名稱和值。

@echo off
set myVBSpath=\\UNC\path
set vbsFileName=myVBS.vbs
cscript //NoLogo "%myVBSpath%\%vbsFileName%" /attachment: "%myAttachment%"
pause

結果批處理錯誤消息

無論我在上面使用哪個選項,都會收到以下錯誤消息:

\\\\ UNC \\ path \\ myVBS.vbs(11,1)Microsoft VBScript運行時錯誤:參數非可選

VBS代碼

Dim xlApp 
Dim xlBook 
'Dim attachmentFullName
'attachmentFullName = WScript.Arguments.Named("attachment")

Set xlApp = CreateObject("Excel.Application") 
Set xlBook = xlApp.Workbooks.Open("\\UNCpath\myExcelFile.xlsm", 0, True) 

xlApp.DisplayAlerts = False
xlApp.Run "myMacro" ', Cstr(attachmentFullName)
xlApp.Quit 

Set xlBook = Nothing 
Set xlApp = Nothing 

故障排除

並不需要一個變量來傳遞給VBS,所以批號(選項1)應該是要走的路,它是如何,我開始。 當我收到上面的運行時錯誤消息時,我嘗試使用選項2傳遞錯誤的變量,只是看它是否提供了cscript命令正在尋找的額外參數。 不幸的是,選項2給出了相同的錯誤消息。

這是一個相當簡單的批處理腳本,所以我真的很茫然,覺得我只是盯着它看了太長時間,使它變得比需要的更難,而我只是缺少了一些簡單的東西。

你們中的任何一個都願意給我新的眼光,讓我知道是什么導致了我的運行時錯誤嗎?

謝謝!

我的解決方案可能是一次性的-但是對於那些在批處理腳本中注意到此錯誤的人,這是故障排除步驟的快速摘要:

  1. 檢查cscript行,以確保沒有意外傳遞(或不傳遞)參數。
  2. 檢查VBS以確保代碼不再請求參數變量(或如果接受則接受參數)-謝謝@Hackoo
  3. 檢查VBA以確保Sub不請求變量-感謝@DavyC!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM