С расширяемой строкой ( интерполяция строки ):
# To embed *expressions*, additionally enclose in $(...); e.g., "'$($Test+1)'"
"'$Test'"
В целом: для вывода значения не требуется Write-Output
, поскольку PowerShell неявно выводит результаты выражения / команды (которые не фиксируются и не перенаправлен).
Вы можете передать приведенное выше выражение как есть в качестве аргумента команды, нет необходимости для $(...)
, оператора подвыражения ; придерживаться образца команды Write-Output
:
Write-Output "'$Test'"
Использование расширяемых строк в качестве удобного способа встраивания представления строки по умолчанию значения переменной или результата выражения в строку.
С -f
, оператором форматирования строки (внутренне на основе String.Format
):
"'{0}'" -f $Test # {0} is a placeholder for the 1st RHS operand
# Enclose in (...) to pass the expression as an argument to a command:
Write-Output ("'{0}'" -f $Test)
Оператор -f
дает вам больший контроль над результирующим строковым представлением , позволяя выполнять такие операции, как заполнение и выбор количества десятичных разрядов для чисел с плавающей запятой.
Обратите внимание, однако, что этот подход подходит только для скаляров , а не массивов (коллекций).
С конкатенацией строк (+
):
"'" + $Test + "'"
# Enclose in (...) to pass the expression as an argument to a command:
Write-Output ("'" + $Test + "'")
Это более подробная альтернатива расширению строки , которая делает выполняемую операцию более очевидной.