При включении литерального символа кавычки в строку в кавычках в Powershell, как я могу экранировать символ кавычки, чтобы указать, что он является литералом, а не разделителем строк?
При включении литерального символа кавычки в строку в кавычках в Powershell, как я могу экранировать символ кавычки, чтобы указать, что он является литералом, а не разделителем строк?
Ответы:
Из help about_quoting_rules
Чтобы двойные кавычки отображались в строке, заключите всю строку в одинарные кавычки. Например:
'As they say, "live and learn."'Вывод этой команды:
As they say, "live and learn."Вы также можете заключить строку в одинарные кавычки в строку в двойных кавычках. Например:
"As they say, 'live and learn.'"Вывод этой команды:
As they say, 'live and learn.'Чтобы заставить Windows PowerShell буквально интерпретировать двойные кавычки, используйте символ обратной черты. Это не позволяет Windows PowerShell интерпретировать кавычку как разделитель строк. Например:
"Use a quotation mark (`") to begin a string."Вывод этой команды:
Use a quotation mark (") to begin a string.Поскольку содержимое строк в одинарных кавычках интерпретируется буквально, вы не можете использовать символ обратного кавычки для принудительного литерального преобразования символов в строке в одинарных кавычках.
Использование символа обратной кавычки для экранирования других кавычек в строках с одинарными кавычками не поддерживается в последних версиях PowerShell. В более ранних версиях PowerShell escape-символ обратного удара можно было использовать для экранирования символа двойной кавычки в одной строке в кавычках, как подробно описано в help about_quotingдокументе, доступном в этих версиях PowerShell.
'As they say, ''live and learn.'''вывод As they say, 'live and learn.', так же, как ваш второй пример.
Побег символ в Powershell является "` "(обратный апостроф / могила).
Это может быть использовано для экранирования кавычек, а также специальных символов (например, tab это `t).
bashума пользователей. ( cmd.exeПобег персонаж ^)
Чтобы дополнить то, что уже было предоставлено здесь, вы также должны знать, что вы можете избежать кавычки (одинарной или двойной) с самой цитатой. Это означает, что вы можете сделать это:
Msgstr "Вот пример строки" "в двойных кавычках" "."
и это:
На этот раз это «одинарные кавычки».
Преимущество этого синтаксиса простое: проще набрать одну и ту же кавычку дважды, чем избежать кавычки с обратной косой чертой.
один текст, поэтому он обрабатывается как буквальный текст, а затем экранирует любые специальные символы, используя «\»
например, эта строка: «Как говорится,« живи и учись ».« Становится этой строкой ». Как говорится,« живи и учись ».
PowerShell.exe -Commandи пытаетесь передать двойные кавычки в параметре (поскольку, технически, это CMD, экранирующий его, но действительный в параметре команды). imgur.com/1btjoQW
about_quotingпомощь. Запуск powershell v5.1. Экранирование двойных кавычек или вложение различных типов кавычек по-прежнему работает, как и ожидалось.