2

是否可以在 powershell 中执行以下操作?

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

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

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

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

希望这是有道理的:)

4

1 回答 1

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 希望参数遵循脚本块(不是之前和之间)。

于 2012-10-03T21:14:48.223 回答