При включении литерального символа кавычки в строку в кавычках в 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. Экранирование двойных кавычек или вложение различных типов кавычек по-прежнему работает, как и ожидалось.