Самое быстрое решение для вашей ситуации - переключиться на здесь строку, заключенную в одинарные кавычки.
$Content = @'
$Var1 = "1"
$Var2 = "2"
$Var3 = "3"
'@
Как правило, двойные кавычки вокруг строки указывают PowerShell на интерполяцию. Одинарные кавычки вокруг строки говорят PowerShell обрабатывать содержимое как буквенную строку. Это также относится к здесь-строкам (@""@
и @''@
).
# Double Quotes
$string = "my string"
"$string"
my string
@"
$string
"@
my string
# Single Quotes
'$string'
$string
@'
$string
'@
$string
Когда происходит интерполяция, переменные раскрываются и оцениваются. Переменная идентифицируется, начиная с символа $
, пока не будет прочитан недопустимый символ для имени переменной. Обратите внимание на приведенный ниже пример, как интерполяция переменной останавливается на .
.
"$string.length"
my string.length
Вы можете использовать escape-символы или другие операторы для управления интерполяцией внутри строк в двойных кавычках. Оператор подвыражения $()
позволяет вычислить выражение до его преобразования в строку.
"$($string.length)"
9
Символ обратного хода является escape-символом PowerShell. Его можно использовать для экранирования $
, если вы не хотите, чтобы его обрабатывали как переменную.
"`$string"
$string
Смешивание кавычек может создать определенные ошибки. Если вы окружите свою строку одинарными кавычками, все внутри будет литеральной строкой независимо от использования escape-символов или подвыражений.
'"$($string.length)"'
"$($string.length)"
'"`$string"'
"`$string"
Окружение вашей строки двойными кавычками с внутренними одинарными кавычками будет просто обрабатывать внутренние одинарные кавычки буквально, потому что внешние кавычки определяют, как будет интерпретироваться строка.
"'$string'"
'my string'
Использование нескольких пар одинарных или двойных кавычек требует особого подхода. В этой уникальной ситуации для двойных кавычек вы можете использовать обратную косую черту или две "
, чтобы напечатать одну "
.
"""$string"""
"my string"
"`"$string`""
"my string"
Для нескольких одинарных кавычек вы должны использовать две '
, потому чтообратный удар будет обрабатываться буквально и не сообщать PowerShell о необходимости что-либо избегать.
'''$string'''
'$string'
Пожалуйста, обратитесь к About_Quoting_Rules для получения официальной документации.