Estou usando uma expressão ternária, conforme mostrado neste exemplo:
$a = 1
$x = if ($a -eq 1) { "one" } else {"not one" }
$t = "The answer is: " + $x
write-host $t
Isso funciona como eu esperaria. O que eu gostaria de fazer na minha situação real é atribuir diretamente a $t
sem a etapa intermediária de primeiro atribuir a expressão a $x
, como se eu pudesse fazer isso:
$a = 1
$t = "The answer is: " + (if ($a -eq 1) { "one" } else {"not one" })
write-host $t
No entanto, recebo um erro na linha de atribuição,
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
(Eu tentei com um sem os parênteses (...)
: mesmo erro.) Claramente estou fazendo algo errado, mas o meu google-fu não está ajudando hoje. Eu posso ver como concatenar constantes and variáveis , mas nada parece explicar como concatenar constantes e expressões.
Você pode me apontar na direção certa, por favor?