3개의 인수가 있는 "ClockTalk.bat"라는 배치 파일이 있습니다.
nircmd.exe speak text "Attention it's now %1 %2, %3 Hours remain to the end of the day" -3
나는 숨겨진 dos 화면이 있는 배치 파일을 실행하기 위해서만 "HideBat.vbs"라는 vbscript를 사용합니다.
'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
...명령 뒤와 인수 사이에 공백을 삽입합니다.