是否可以在 powershell 中执行以下操作?
$condition = "-eq 10"
$a=11
if ($a &$condition) {"yes"} else {"no"}
基本上是在语句之外创建部分语句,然后动态使用它?
我知道我可以在变量中创建整个语句,然后使用 Invoke-Expression 或 &$cmd 运行它,但是我有一个非常长且复杂的 if/else 语句并试图即时构建它的一部分。
希望这是有道理的:)
是否可以在 powershell 中执行以下操作?
$condition = "-eq 10"
$a=11
if ($a &$condition) {"yes"} else {"no"}
基本上是在语句之外创建部分语句,然后动态使用它?
我知道我可以在变量中创建整个语句,然后使用 Invoke-Expression 或 &$cmd 运行它,但是我有一个非常长且复杂的 if/else 语句并试图即时构建它的一部分。
希望这是有道理的:)
是的,如果您可以交换订单,例如:
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 希望参数遵循脚本块(不是之前和之间)。