从变量替换的powershell命令的一部分

时间:2012-10-03 21:08:39

标签: powershell

可以在powershell中执行类似下面的操作吗?

$condition = "-eq 10"
$a=11

if ($a &$condition) {"yes"} else {"no"}

基本上是在语句之​​外创建语句的一部分然后动态使用它?

我知道我可以在变量中创建整个语句,然后使用Invoke-Expression或& $ cmd运行它,但是我有一个非常长且复杂的if / else语句并尝试在其上构建它的一部分飞。

希望有道理:)

1 个答案:

答案 0 :(得分:4)

是的,如果您可以更换订单,例如:

C:\PS> $conditionEq10 = {param($a) $a -eq 10}
C:\PS> $a = 11
C:\PS> if (&$conditionEq10 $a) {'yes'} else {'no'}
no
C:\PS> $a = 10
C:\PS> if (&$conditionEq10 $a) {'yes'} else {'no'}
yes

您可以使用PowerShell使用脚本块{code}进行前缀样式表示法,但不能使用中缀或后缀。那是因为PowerShell希望参数遵循scriptblock(不是之前而不是之间)。