调用多个.vbs脚本时,Windows批处理脚本失败

时间:2013-09-17 13:35:12

标签: batch-file vbscript

我有一个批处理文件,它设置了4个不同的参数,并尝试为每个参数调用.vbs脚本。第一个调用工作正常,但第二个调用(以及之后的所有调用)抛出异常: VBScript运行时错误:下标超出范围

我已经尝试重命名脚本并将其复制,因此它是一个新脚本,但即使这样,第二次调用也会失败。

for /F %%a in ('dir ***** /B /S') do    set fileName=%%~fa 
for /F %%a in ('dir ****** /B /S') do set fileName2=%%~fa  
goto : new

:new
set hostName=%1
set portNumber=%2
set majorVersion=%3
set instance=%4

call ******.vbs %hostName% %portNumber% %majorVersion% %fileName%%instance% 
call ******.vbs %hostName% %portNumber% %majorVersion% %fileName4%%instance%

** 是脚本和文件所在的目录。

2 个答案:

答案 0 :(得分:0)

给这个破解:

cscript /nologo ******.vbs %hostName% %portNumber% %majorVersion% %fileName%%instance% 
cscript /nologo ******.vbs %hostName% %portNumber% %majorVersion% %fileName4%%instance%

您的路径\文件名可能还包含空格和有毒字符,这些字符看起来无法正确处理。你可能需要加倍引用它们。

"%fileName%%instance%"
"%fileName4%%instance%"

答案 1 :(得分:0)

cscript "Test.vbs" "param1-name" "param2-name" "param3-name" 

cscript ******.vbs "%hostName%" "%portNumber%" "%majorVersion%" "%fileName%%instance%"

"Test.vbs" "param1-name" "param2-name" "param3-name" 

如果您需要在脚本执行之间有一些延迟,请使用以下内容:

TIMEOUT /T 3 

尝试你喜欢的方式。享受!