2014-10-21 2 views
-1

명령 프롬프트에서 Exchange PowerShell 명령을 실행할 VBScript를 만듭니다. 아래 스크립트를 실행하려고 시도했을 때 expected end of statement이 표시되었습니다.VBscript를 사용하여 CMD 프롬프트에서 Exchange PowerShell 명령 실행

Dim oShell 
Set oShell = WScript.CreateObject ("WScript.Shell") 
oShell.run "cmd.exe ""C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe"" -psconsolefile ""C:\Program Files\Microsoft\Exchange Server\V14\Bin\exshell.psc1"" -file ""C:\script\script.ps1"" " 

도와주세요.

+0

I을 더 많은 것이 있지만이 경우 다른 쉘에서 쉘을 호출하는 것은 불필요합니다. 나는 이것으로부터'cmd' 컴포넌트를 제거 할 것입니다. 또한 오류가 발생한 위치를 말하지 않습니다. 당연히 나는 3 번째 줄에 있기를 기대하지만 실제로는'
'이 스크립트에 있습니까? 그러면 오류가 발생합니까? – Matt

+0

PowerShell을 사용하지 않는 이유가 있습니까? 귀하의 경우에 Cscript는 PowerShell을 호출하는 Cmd를 호출합니까? – JPBlanc

답변

1

(1) <br>이 있어야합니다.

(2) 복잡한 문자열 구축 더 구조화 된 방식으로 사용

... -file """C:\script\script.ps1" " 

같이 동기화 해주가는 당신의 따옴표를 방지하려면 :

Option Explicit 

Function qq(s) : qq = """" & s & """" : End Function 

Dim oShell : Set oShell = WScript.CreateObject ("WScript.Shell") 
Dim sCmd : sCmd  = Join(Array(_ 
    "%comspec%" _ 
    , "/c" _ 
    , qq("C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe") _ 
    , "-psconsolefile" _ 
    , qq("C:\Program Files\Microsoft\Exchange Server\V14\Bin\exshell.psc1") _ 
    , "-file" _ 
    , qq("C:\script\script.ps1") _ 
)) 
WScript.Echo sCmd 

출력 :

cscript 26477799.vbs 
%comspec% /c "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -psconsolefile "C:\Program Files\Microsoft\Exchange Server\V14\Bin\exshell.psc1" -file "C:\script\script.ps1" 
+0

.ps1 파일을 실행하거나 읽으려면 exshell.psc1 파일을 호출해야합니다. – oGuReiSuo

관련 문제