Powershell, экранирующий специальные символы в переменной - PullRequest
0 голосов
/ 05 июля 2018

У меня есть переменная в powershell, которая содержит специальные символы, такие как «<», «>» и двойные кавычки, в настоящее время я использую что-то вроде -replace ">" , "^>", -replace "<" , "^<", -replace '"' , "'", просто интересно, есть ли способ экранировать все специальные символы в этой переменной.

1 Ответ

0 голосов
/ 05 июля 2018

Оберните переменную в фигурные скобки, т.е.

${<My-Variable>with<Special-Characters>} ="<test>"
${<My-Variable>with<Special-Characters>}

Возвращает

<test>

Ниже взято из другого поста на StackOverflow, но не могу найти ссылку

Если это переменная, содержащая специальные символы, это должно работать. Внутри @ "" @ delimiters переменные и подвыражения будут расширены, но кавычки и другие специальные символы рассматриваются как литералы.

$SpecialCharacters = @'
& "C:\Program Files\7-Zip\7z.exe" u -mx5 -tzip -r "$DestFileZip" "$DestFile"
'@

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