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 に答える