2012-06-01 3 views
2

다음 코드를 실행할 때 첫 번째 PowerShell 스크립트에서 시도하고 잘못된 매개 변수 오류가 발생합니다. powersehll 명령에 인수를 어떻게 전달할 수 있습니까?Powershell 명령 줄 인수에 공백과 중괄호가 있습니까?

& "bcdedit" /store c:\boot\bcd /set {bootmgr} device partition=C: 

편집 : 이의 작업 코드는 다음과 같습니다

& "bcdedit" /store c:\boot\bcd /set "{bootmgr}" device partition=C: 
+0

정확한 오류 메시지 [s]을 게시 할 수 있습니까? –

+0

알 수없는 명령이 지정되었습니다. "bcdedit /?"를 실행하십시오. 명령 줄 지원. – arynhard

+0

그것을 알아 냈습니다. {bootmgr}는 큰 따옴표가 필요합니다. – arynhard

답변

3

중괄호는 모든 것을 던졌습니다. {bootmgr} 주위에 따옴표를 붙이면 문제가 해결되었습니다.

& "bcdedit" /store c:\boot\bcd /set "{bootmgr}" device partition=C: 
2

당신이로 실행하는 문제는 PowerShell을 파서가 다르게 cmd.exe 파서보다 작동합니다. 이 문제를 해결하는 한 가지 방법은 명령을 cmd.exe에 전달하고 구문 분석을 수행하는 것입니다.

이렇게하려면 /c 옵션을 작은 따옴표로 사용하여 cmd.exe에 명령을 전달하십시오.

cmd.exe /c 'bcdedit /store c:\boot\bcd /set {bootmgr} device partition=C:' 

이 방법은 사용하는 명령에 문자열 인용 인수가 필요한 경우 특히 유용합니다.

+0

이것은 PowerShell의 많은 문제에 대한 훌륭한 솔루션입니다 (특히 이전 명령 줄에 투자 한 경우) – Froyke

관련 문제