ja-JP/about_Quoting_Rules.help.txt
|
TOPIC about_Quoting_Rules 簡単な説明 PowerShell における引用符 (単一引用符・二重引用符) の使い方と、 文字列内での変数展開やエスケープのルールを説明します。 詳細な説明 PowerShell では、文字列を単一引用符 (') または二重引用符 (") で 囲んで表します。どちらの引用符を使うかによって、変数や式の展開 動作が変わります。 二重引用符で囲んだ文字列 (展開可能文字列) 二重引用符で囲んだ文字列では、変数の置換と式の評価が行われます。 先頭に $ が付いた変数は、その値に置き換えられます。 $name = "太郎" "こんにちは $name さん" # こんにちは 太郎 さん 配列の要素やオブジェクトのメンバーを展開するには、部分式構文 $() を 使う必要があります。$ と変数名だけでは展開されません。 $a = 1, 2, 3 "最初の要素は $($a[0]) です" "プロセス名: $($p.Name)" 単一引用符で囲んだ文字列 (リテラル文字列) 単一引用符で囲んだ文字列では、変数の置換や式の評価は一切行われず、 入力したとおりの内容がそのまま使われます。 $name = "太郎" 'こんにちは $name さん' # こんにちは $name さん 変数展開の抑制 二重引用符の中で変数を展開させたくない場合は、バッククォート (`) で エスケープします。`$variable は、文字どおり $variable と表示されます。 "リテラル: `$name" # リテラル: $name 変数名の直後にコロンなどが続く場合は、波かっこ {} で変数名の範囲を 明示します。 "${HOME}: ホームディレクトリ" 文字列に引用符を含める - 単一引用符の文字列に二重引用符を含める: 'He said "hello"' - 二重引用符の文字列に単一引用符を含める: "It's working" - 二重引用符の中で二重引用符を表す (重ねる): "Say ""hello""" - 単一引用符の中で単一引用符を表す (重ねる): 'don''t' → don't バッククォートで二重引用符をエスケープすることもできます。 "Say `"hello`"" # Say "hello" 全角の引用符 (いわゆるスマートクォート) も、通常の引用符と同様に エスケープが必要です。 ヒアストリング (here-string) 複数行にわたる文字列は、ヒアストリングで表します。二重引用符版は @"..."@、単一引用符版は @'...'@ の構文を使います。開始記号の直後と、 終了記号の直前は、それぞれ改行する必要があります。終了記号は行頭に 置きます。 $text = @" 複数行の "引用符" もそのまま書けます。 変数 $name も展開されます。 "@ $literal = @' ここでは $name は展開されず、 'そのまま' 出力されます。 '@ 二重引用符のヒアストリングでは変数が展開され、単一引用符の ヒアストリングではリテラルとして扱われます。ヒアストリング内の 引用符は、エスケープなしでそのまま記述できます。 カルチャに関する注意 オブジェクトの ToString() を直接呼び出すと、システムのカルチャ設定が 反映されます。一方、PowerShell の展開可能文字列の中での変換は、 インバリアントカルチャ (不変カルチャ) で書式設定されます。これにより、 ロケールに依存しない一貫した出力が得られます。 関連項目 about_Variables about_Special_Characters about_Escape_Characters about_Automatic_Variables ---- 原文: PowerShell-Docs (CC BY 4.0) の翻訳 / PSHelpJaJP |