Вы можете использовать двойные кавычки, если вы выходите из $
с одним обратным кавычком перед ним: -myString "`$test1"
.
Но обычный подход заключается в использовании одинарных кавычек: -myString '$test1'
.
Обратите внимание, что версия с одинарными кавычками должна иметь два одинаковых прямых апострофа ('
) по обе стороны отстроковое значение, НЕ backticks (`
).
Для версии с двойными или одинарными кавычками вы можете использовать фигурные символы кавычек в Юникоде (те же, что у SmartQuotes)в Word), но они будут работать только в том случае, если ваш сеанс работает с настройкой локали, которую Powershell распознает как Unicode. Если есть несоответствие языкового стандарта, Windows не будет правильно интерпретировать такие кавычки (или любые другие символы, не входящие в ASCII).
Итак, если вы используете пунктуацию, совпадающую с кодировкой текста вашей сессии, эти подходы должны работать для васкак они делают для меня здесь:
PS /> type foo.ps1 # the test script
param($myString, $myOut)
Write-Host "myString=$myString, myOut=$myOut"
PS /> ./foo.ps1 -myString "`$test1" -myOut 3 # ASCII double-quotes
myString=$test1, myOut=3
PS /> ./foo.ps1 -myString “`$test1” -myOut 3 # Unicode double-quotes
myString=$test1, myOut=3
PS /> ./foo.ps1 -myString '$test1' -myOut 3 # ASCII single-quotes
myString=$test1, myOut=3
PS /> ./foo.ps1 -myString ‘$test1’ -myOut 3 # Unicode single-quotes
myString=$test1, myOut=3
Обратите внимание, что независимо от того, какой стиль двойных кавычек вы используете, обратная черта для выхода из знака доллара всегда должна быть обратной ASCII, `
;Powershell не распознает фигурный эквивалент Unicode этого символа.