Разверните переменную и добавьте результаты в одинарные кавычки - PullRequest
0 голосов
/ 10 ноября 2018

Глупый вопрос, но не могу понять это. Как развернуть содержимое переменной и показать результат в одинарных кавычках?

    $Test = Hello
    Write-output $($Test)

Я бы хотел, чтобы результат был 'Hello', включая кавычки.

1 Ответ

0 голосов
/ 10 ноября 2018

С расширяемой строкой ( интерполяция строки ):

# 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 + "'")

Это более подробная альтернатива расширению строки , которая делает выполняемую операцию более очевидной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...