web-dev-qa-db-ja.com

Powershellの文字エスケープ文字とは何ですか?

Powershellで引用符付き文字列内にリテラル引用符文字を含める場合、引用符文字をエスケープして文字列区切り文字ではなくリテラルであることを示すにはどうすればよいですか?

58
David Alpert

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では、バッククォートエスケープ文字を使用して、それらのバージョンのPowerShellで利用できるhelp about_quotingドキュメントで詳細に説明されているように、単一引用符付き文字列内の二重引用符文字をエスケープできました。

84
Helvick

Powershellのエスケープ文字は "` "(後方アポストロフィ/墓)です。

これは、引用符や特殊文字をエスケープするために使用できます(たとえば、タブは `t)。

15
Adam Brand

ここですでに提供されている内容を補完するために、引用符自体で引用符(単一または二重)をエスケープできることも知っておく必要があります。つまり、これを行うことができます:

「これは、「 "二重引用符で囲まれた文字列"」の例です。」

この:

'今回は「単一引用符で囲まれています」。

この構文が提供する利点は単純です。引用符をバックティックでエスケープするよりも、同じ引用符を2回入力する方が簡単です。

10
Poshoholic

単一の「テキスト」なので、リテラルテキストとして扱われ、「\」を使用して特殊文字をエスケープします。

例えばこの文字列:「彼らが言うように、「生きて学ぶ」。この文字列になる「彼らが言うように、「生きて学ぶ。」」

1
dvdccd