如何在PowerShell 3.0中编写此多行语句

时间:2013-07-25 02:35:55

标签: powershell

我试图在PowerShell中写这个:

  

cspack $ a / ServiceDefinition.csdef / role:$ b; $ c /rolePropertiesFile:$a.$b;c$ / sites:$ a; $ b; $ c / out:$ out

但看起来PowerShell需要解决这个问题,我遇到了麻烦。

我得到的错误如下:

  

您必须在'/'运算符右侧提供值表达式

那么如何在PowerShell中调用EXE文件并提供多行/开关参数如果我执行以下操作?

cspack.exe $a/ServiceDefinition.csdef `
/role:$b;$c `  (place backtick on the end)
/rolePropertiesFile:$a.$b;c$ (powershell complains on this line)

2 个答案:

答案 0 :(得分:2)

有关/运算符的错误通常表明PowerShell没有将命令视为命令行;前缀&以强制它这样做。请注意,如果.\cspack位于当前目录中,您还需要使用cspack。 PowerShell还会将分号视为语句终止符,因此您需要用引号括住每个参数以防止它出现。

& cspack "$a/ServiceDefinition.csdef" "/role:$b;$c" "/rolePropertiesFile:$a.$b;c$" "/sites:$a;$b;$c" "/out:$out"

答案 1 :(得分:1)

您需要转义分号,因为它是PowerShell中的语句分隔符。在每个; PowerShell认为它正在执行新命令之后。试试这个:

cspack $a/ServiceDefinition.csdef /role:$b`;$c /rolePropertiesFile:$a.$b`;c$ /sites:$a`;$b`;$c /out:$out