如何在 CMD 中從 vbscript 執行多參數批次檔?

如何在 CMD 中從 vbscript 執行多參數批次檔?

我有一個名為「ClockTalk.bat」的批次文件,它有 3 個參數:

nircmd.exe speak text "Attention it's now %1 %2, %3 Hours remain to the end of the day" -3

我使用名為“HideBat.vbs”的 vbscript 僅用於運行帶有隱藏 dos 螢幕的批次檔:

'HideBat.vbs
CreateObject("Wscript.Shell").Run "ClockTalk.bat" & WScript.Arguments(0) & WScript.Arguments(1) & WScript.Arguments(2), 0, False

我從命令行運行它,如下所示:

HideBat.vbs 12 10 am

它總是給我一個錯誤:系統找不到指定的文件

或者如果我像這樣運行它:

HideBat.vbs "12 10 am"

它總是給我一個錯誤:下標超出範圍

那麼我的文件出了什麼問題,以及如何從 vbscript 運行批次檔並從命令列將三個參數傳遞給它?

答案1

您忘記考慮參數之間的空格。因此它嘗試運行HideBat.vbs1210am,這不是合法文件,因此您會收到“系統找不到指定的文件”錯誤。

當您運行它時,HideBat.vbs "12 10 am"您正在製作它,以便您提供12 10 am作為單一參數。因此,當 VBS 腳本引用數組中的第二個和第三個參數時,它們不存在,因此您會收到「下標超出範圍」錯誤。

嘗試類似的方法:

CreateObject("Wscript.Shell").Run "ClockTalk.bat " & WScript.Arguments(0) & " " & WScript.Arguments(1) & " " & WScript.Arguments(2), 0, False

...在指令後面和參數之間插入空格。

相關內容