如何在 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 脚本引用数组中的第 2 和第 3 个参数时,它们不存在,因此您会收到“下标超出范围”错误。

尝试以下方法:

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

...在命令后和参数之间插入空格。

相关内容