可以在powershell中执行类似下面的操作吗?
$condition = "-eq 10"
$a=11
if ($a &$condition) {"yes"} else {"no"}
基本上是在语句之外创建语句的一部分然后动态使用它?
我知道我可以在变量中创建整个语句,然后使用Invoke-Expression或& $ cmd运行它,但是我有一个非常长且复杂的if / else语句并尝试在其上构建它的一部分飞。
希望有道理:)
答案 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(不是之前而不是之间)。