我正在嘗試運行我的第一個PowerShell腳本,並在運行以下代碼時出現錯誤的參數錯誤。我如何將參數傳遞給powersehll中的命令?帶空格和大括號的Powershell命令行參數?
& "bcdedit" /store c:\boot\bcd /set {bootmgr} device partition=C:
編輯: 此工作代碼:
& "bcdedit" /store c:\boot\bcd /set "{bootmgr}" device partition=C:
我正在嘗試運行我的第一個PowerShell腳本,並在運行以下代碼時出現錯誤的參數錯誤。我如何將參數傳遞給powersehll中的命令?帶空格和大括號的Powershell命令行參數?
& "bcdedit" /store c:\boot\bcd /set {bootmgr} device partition=C:
編輯: 此工作代碼:
& "bcdedit" /store c:\boot\bcd /set "{bootmgr}" device partition=C:
花括號把所有東西都扔掉了。將報價放在{bootmgr}
左右可以解決問題。
& "bcdedit" /store c:\boot\bcd /set "{bootmgr}" device partition=C:
你碰到的問題是,PowerShell的解析器工作方式是不同的cmd.exe
解析器一樣。解決這個問題的一個方法是將您的命令傳遞給cmd.exe
並讓它解析。
爲此,請使用/c
選項將命令傳遞給cmd.exe
作爲單引號字符串。
cmd.exe /c 'bcdedit /store c:\boot\bcd /set {bootmgr} device partition=C:'
當您使用的命令需要字符串引用的參數時,此方法特別有用。
對於Powershell的這麼多問題,這是一個很好的解決方案(特別是如果您已經投資了舊的命令行) – Froyke
請問您能發表確切的錯誤信息嗎? –
指定了未知的命令。運行「bcdedit /?」爲命令行援助。 – arynhard
找出來了。 {bootmgr}需要雙引號。 – arynhard