2014-07-07 2 views
1

powershell을 통해 배치 파일에 쉼표로 구분 된 매개 변수를 전달해야하며 제대로 작동하지 않는 것처럼 보일 수 있습니다.Invoke-Command Powershell 매개 변수 문제

PS C:\Users\Mike> type zz.cmd 
@echo off 
echo/* = [%*} 
echo/1 = [%1] 
echo/2 = [%2] 
echo/3 = [%3] 
pause 
PS C:\Users\Mike> cmd /c zz "q,w,e" 
* = [q,w,e} 
1 = [q] 
2 = [w] 
3 = [e] 
Press any key to continue . . . 

내가 cmd를/C ZZ "" "Q, E, w" ""또는 cmd를/C ZZ ' "Q를 사용하는 경우 승 : 내가 PowerShell에서 직접 호출하면 내가 배치 파일을 호출 방법은 다음과 , e " 'arg 1에 대해"q, w, e "를 얻을 것이다. 그러나 Invoke-Command를 사용하여 powershell을 호출해야합니다. 이렇게하면 스크립트가 작동하지 않습니다

powershell.exe Invoke-Command -ScriptBlock { "cmd /c E:\\npoess\\oo\\WoD\\zzz" '"q,w,e"'} 

모든 아이디어를 어떻게 배치 파일을 하나 개의 매개 변수로 "전자 승, q"를 얻기 위해 명령 프롬프트에서 PowerShell을 호출을받을 수 있나요?

감사합니다,

- 마이크 모든 따옴표없이이 호출-명령은 나를 위해 통과 작동

+0

왜'cmd.exe'를 실행하는 유일한 목적으로'powershell.exe'를 부릅니까? 'cmd.exe'를 직접 실행하지 못하게하는 것은 무엇입니까? 간접 참조의 레이어를 추가하는 것은 일을 끝내는 데 도움이되지 않습니다. – alroc

+0

"그러나 Invoke-Command를 사용하여 powershell을 호출해야합니다." 왜? –

+0

사용자 자격 증명을 전달할 때 powershell을 사용해야합니다. –

답변

1

: 나는 변수 주위에 따옴표 대신 문자열로 세트를 전달하는 생각 별도의 값.

Invoke-Command -ScriptBlock { 
    cmd /c C:\scripts\zz.cmd q,w,e 
    } 
+0

powershell.exe Invoke-Command -ScriptBlock {cmd/c C : \ scripts \ zz.cmd q, w, e}를 시도해 보았는데 세트를 함께 전달하지 못했습니다. –