2013-05-08 3 views
26

cmd 명령 줄에서 PowerShell 스크립트를 실행하려고합니다. 누군가가 나에게 예를주고 그것을 작동 :CMD에서 PowerShell을 실행하는 방법

powershell.exe -noexit "& 'c:\Data\ScheduledScripts\ShutdownVM.ps1'" 

그러나 문제는 내가 노력 있도록 내 PowerShell 스크립트가 입력 매개 변수가 있지만 작동하지 않습니다

powershell.exe -noexit "& 'D:\Work\SQLExecutor.ps1 -gettedServerName "MY-PC" ' " 

오류는 다음과 같습니다

용어 'D : \ 일 \ SQLExecutor.ps1 -gettedServerName "MY-PC"'cmdlet에, 함수의 이름으로 인식되지 않습니다,

도움을 기다리고 있습니다! 감사!

powershell.exe -noexit "& 'D:\Work\SQLExecutor.ps1 ' -gettedServerName 'MY-PC'" 

파일 매개 변수 및 위치 매개 변수를 사용하여 구문을 완화 수있는 또 다른 옵션 :

powershell.exe -noexit -file "D:\Work\SQLExecutor.ps1" "MY-PC" 
+2

-noexit을 사용 하시겠습니까? 즉, 스크립트가 완료되면 쉘이 중단되어 CMD에서 배치 파일의 실행을 차단할 수 있습니다. – x0n

답변

51

당신은 파일 경로에서 인수를 분리 할 필요가

powershell.exe -noexit D:\Work\SQLExecutor.ps1 -gettedServerName "MY-PC" 
+0

대단히 감사합니다! – XiaoYao

4

그냥 시도 :

0

Shay Levy의 정답에 다음을 추가하고 싶습니다.

@echo off & setlocal 
set batchPath=%~dp0 
powershell.exe -noexit -file "%batchPath%SQLExecutor.ps1" "MY-PC" 

SQLExecutor.ps1과 동일한 경로에 넣어 지금부터 당신이 run.cmd을 더블 클릭하여 실행에 : 당신이 시작하기 위해 PowerShell 스크립트를 약간 배치 스크립트 run.cmd를 만들 경우 당신은 당신의 인생을 쉽게 만들 수 있습니다 . 커맨드 라인 인수가 필요한 경우에는 %1 ... %9으로 powershell 스크립트 (run.cmd 배치 내부)에 전달하십시오.

관련 문제