Я использую троичное выражение, как показано в этом примере:
$a = 1
$x = if ($a -eq 1) { "one" } else {"not one" }
$t = "The answer is: " + $x
write-host $t
Это работает, как я ожидал. Что я хотел бы сделать в моей реальной ситуации, так это назначить непосредственно $t
без промежуточного шага первого присваивания выражения $x
, как если бы я мог сделать это:
$a = 1
$t = "The answer is: " + (if ($a -eq 1) { "one" } else {"not one" })
write-host $t
Тем не менее, я получаю сообщение об ошибке в строке назначения,
if : The term 'if' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the
spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:31
+ $t = "The answer is: " + (if ($a -eq 1) { "one" } else {"not one" ...
+ ~~
+ CategoryInfo : ObjectNotFound: (if:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
(Я пробовал без (...)
скобок: та же ошибка.) Очевидно, что я делаю что-то не так, но мой гугл-фу сегодня не помогает. Я вижу, как объединять константы и переменные, но, кажется, ничто не объясняет, как объединять константы и выражения.
Можете ли вы указать мне правильное направление, пожалуйста?