2012-06-01 141 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

請問您能發表確切的錯誤信息嗎? –

+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

相關問題