2013-08-22 2 views
-1

vb 스크립트의 인수를 사용하여 perl 스크립트를 호출해야합니다. 인수에 공백이 들어 있으면 작동하지 않습니다. Pls help.Thanks.vbscript에서 perl 스크립트를 호출하십시오.

Set oShell = CreateObject("WScript.Shell") 
sArgs = strArg1 
sExec = "perl test.pl" 
sCmd = sExec & " " & sArgs & " " 
oShell.Run(sCmd) 

답변

0

셸에서 인수를 따옴표로 묶어 명령을 토큰 화하는 데 도움을 줄 수 있습니다. 다음과 같을 수 직접 쉘에

실행 :

C:\> perl test.pl "C:/Path with spaces/foo.temp" 

당신이 VBScript로, 우리는 두 단계로 그 해결을 할 거라고 방법으로 : escape literal quotes in a stringuse Replace() to format that string.

sCmd = "perl test.pl ""{0}""" 
sCmd = Replace(sCmd, "{0}", sArgs) 
oShell.Run(sCmd) 

여기에는 sArgs에는 하나의 인수 만 들어 있다고 가정합니다. 여러 개의 인수를 전달하는 경우 각 인수를 개별적으로 따옴표로 묶어야합니다.

+0

여기서 '바꾸기'를 사용하는 것은 무의미한 오버 헤드입니다. 간단한 문자열 연결만으로 충분합니다.'sCmd = "perl test.pl" ""& sArgs & "" ""' –

+0

성능 차이는 미미할 것이라고 생각하지만 제 의견으로는 가독성과 유지 보수 용이성의 차이는 없습니다. . – rutter

+0

가독성에 대해 걱정이된다면 인용 함수 ('Function qq (str) : qq = Chr (34) & str & Chr (34) : End Function')를 사용하면 연결을 다음과 같이 할 수 있습니다 : 펄 테스트 .pl "& qq (sArgs)'. –

관련 문제