带有空格和大括号的Powershell命令行参数?

时间:2012-06-01 14:27:43

标签: powershell

我正在尝试使用我的第一个PowerShell脚本,并在运行以下代码时出现错误的参数错误。如何将参数传递给powersehll中的命令?

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

修改 其工作代码是:

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

2 个答案:

答案 0 :(得分:3)

大括号丢掉了所有东西。在{bootmgr}附近加上引号可以解决问题。

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

答案 1 :(得分:2)

您遇到的问题是PowerShell解析器的工作方式与cmd.exe解析器的工作方式不同。解决此问题的一种方法是将命令传递给cmd.exe并让它进行解析。

为此,请使用cmd.exe选项将命令传递给/c作为单引号字符串。

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

当您使用的命令需要字符串引用的参数时,此方法特别有用。