PowerShell HelpFile - about_Quoting_Rules
 記事記号:[me1564] 初版:2011/May/10

この文書は、Windows PowerShellのヘルプ機能で表示される内容を再構成したものです。

トピック
    about_Quoting_Rules

簡易説明
    Windows PowerShell での単一引用符および二重引用符の使用規則について説明しま
    す。

詳細説明
    引用符は、リテラル文字列を指定するために使用します。文字列は、単一引用符 (') 
    または二重引用符 (") で囲むことができます。
 

    引用符は、here-string を作成する場合にも使用します。here-string は、単一引用
    符または二重引用符で囲まれた文字列であり、その内部では引用符が文字どおりに解
    釈されます。here-string には、複数の行を含めることができます。here-string 内
    の行は、引用符で囲まれていない場合でも、すべて文字列として解釈されます。


    リモート コンピューターに適用されるコマンドでは、引用符を使用して、リモート 
    コンピューター上で実行されるコマンド部分を指定します。また、リモート セッシ
    ョンでは、引用符を使用して、コマンド内の変数をローカル コンピューターとリモ
    ート コンピューターのどちらで先に解釈するかを指定します。


 単一引用符または二重引用符で囲まれた文字列

      文字列を二重引用符で囲むと、文字列がコマンドに渡されて処理される前に、ドル
      記号 ($) で始まる変数名が変数の値に置き換えられます。
 

      次にその例を示します。

          $i = 5
          "The value of $i is $i."


      このコマンドの出力は次のようになります。

          The value of 5 is 5.


      また、二重引用符で囲まれた文字列内では、式が評価され、結果が文字列に挿入さ
      れます。次にその例を示します。

	  "The value of $(2+3) is 5."


      このコマンドの出力は次のようになります。

	  The value of 5 is 5.


      文字列を単一引用符で囲むと、その文字列が入力したとおりにコマンドに渡されま
      す。置き換えは行われません。次にその例を示します。

          $i = 5
          'The value of $i is $i.'


      このコマンドの出力は次のようになります。

          The value $i is $i.


      同様に、単一引用符で囲まれた文字列内の式は評価されません。
      リテラルとして解釈されます。次にその例を示します。

	  'The value of $(2+3) is 5.'


      このコマンドの出力は次のようになります。

	  The value of $(2+3) is 5.


      二重引用符で囲まれた文字列内で変数値の置き換えが行われないようにするには、
      Windows PowerShell のエスケープ文字であるアクサン グラーブ文字 (`) (ASCII 
      96) を使用します。


      次の例では、アクサン グラーブ文字が最初の $i 変数の前にあるので、変数名は
      値で置き換えられません。次にその例を示します。

          $i = 5
          "The value of `$i is $i."


      このコマンドの出力は次のようになります。

          The value $i is 5.
     
    
      二重引用符が文字列に表示されるようにするには、文字列全体を単一引用符で囲み
      ます。次にその例を示します。

          'As they say, "live and learn."'


      このコマンドの出力は次のようになります。

          As they say, "live and learn."


      単一引用符で囲まれた文字列を二重引用符で囲まれた文字列に入れることもできま
      す。次にその例を示します。

          "As they say, 'live and learn.'"


      このコマンドの出力は次のようになります。

          As they say, 'live and learn.'


      または、二重引用符で囲まれた語句をさらに引用符で囲みます。次にその例を示し
      ます。

          "As they say, ""live and learn."""


      このコマンドの出力は次のようになります。

          As they say, "live and learn."


      単一引用符で囲まれた文字列に単一引用符を含めるには、単一引用符を連続させま
      す。次にその例を示します。

          'don''t'


      このコマンドの出力は次のようになります。

          don't


      Windows PowerShell で二重引用符を文字どおりに解釈させるには、アクサン グラ
      ーブ文字を使用します。アクサン グラーブ文字を使用すると、引用符は文字列の
      区切り記号として解釈されません。次にその例を示します。

          "Use a quotation mark (`") to begin a string."


      単一引用符で囲まれた文字列の内容は文字どおりに解釈されるので、単一引用符で
      囲まれた文字列内で文字を文字どおりに解釈させるために、アクサン グローブ文
      字を使用することはできません。

 
      たとえば、次のコマンドを使用すると、エラーが発生します。Windows PowerShell 
      でエスケープ文字が認識されないためです。代わりに、Windows PowerShell は 2 
      つ目の引用符を文字列の終端と解釈します。


	  PS C:\> 'Use a quotation mark (`') to begin a string.'
          式またはステートメントのトークン ')' を使用できません。
          行:1 文字:27
          + 'Use a quotation mark (`') <<<< to begin a string.'


 単一引用符または二重引用符で囲まれた here-string

      here-string の引用符の規則は、若干異なります。


      here-string は、単一引用符または二重引用符で囲まれた文字列であり、その内部
      では引用符が文字どおりに解釈されます。here-string には、複数の行を含めるこ
      とができます。here-string 内の行は、引用符で囲まれていない場合でも、すべて
      文字列として解釈されます。


      通常の文字列の場合と同様に、二重引用符で囲まれた here-string 内の変数は値
      に置き換えられます。単一引用符で囲まれた here-string 内の変数は、値に置き
      換えられません。

 
      here-string は任意のテキストで使用できますが、次の種類のテキストでは特に
      便利です。

          - リテラル引用符を含むテキスト
          - HTML ドキュメントや XML ドキュメント内のテキストなど、複数の行から
            成るテキスト
          - スクリプトや関数のヘルプ テキスト


      here-string は次のどちらかの形式で作成できます。 は、Enter キーを押
      したときに追加されるラインフィードまたは非表示の改行記号です。
 

      形式 1:

	  @"
           [string] ...
          "@


      形式 2:
 
	  @'
           [string] ...
          '@


      どちらの形式でも、終わりの引用符を行の最初の文字にする必要があります。

   
      here-string では、2 つの非表示の文字の間にすべてのテキストが含まれます。
      here-string では、すべての引用符が文字どおりに解釈されます。
      次にその例を示します。

	  @"
	  For help, type "get-help"
	  "@

    
      このコマンドの出力は次のようになります。

	  For help, type "get-help"


      here-string を使用すると、コマンド内で文字列を扱いやすくなります。次にその
      例を示します。

	  @"
          Use a quotation mark (') to begin a string.
          "@

	    
      このコマンドの出力は次のようになります。

          Use a quotation mark (') to begin a string.


      単一引用符で囲まれた here-string 内の変数は文字どおりに解釈され、正確に複
      製されます。次にその例を示します。

          @'
	  The $profile variable contains the path
          of your Windows PowerShell profile.
          '@


      このコマンドの出力は次のようになります。

	  The $profile variable contains the path
          of your Windows PowerShell profile.


      二重引用符で囲まれた here-string 内の変数は、値に置き換えられます。次にそ
      の例を示します。

	  @" 
          Even if you have not created a profile, the path of the 
          profile file is:
          $profile.
          "@

    
      このコマンドの出力は次のようになります。

	  Even if you have not created a profile,
	  the path of the profile file is:
	  C:\Users\User01\Documents\WindowsPowerShell\Microsoft.PowerShell_profi
          le.ps1.


      通常、here-string は複数の行を変数に代入するために使用されます。たとえば、
      次の here-string では、XML のページが $page 変数に代入されます。


        $page = [XML] @"
        
	    
	    	    
                       Format-Table
		    
		    
			Formats the output as a table.
		    
		    format
		    table
		    
 	    
        ...
        
        "@
   

      here-string は、here-string をハッシュ テーブルに変換する ConvertFrom-Stri
      ngDataコマンドレットに入力する場合にも便利な形式です。詳細については、「Co
      nvertFrom-StringData」を参照してください。


関連項目
    about_Escape_Characters
    ConvertFrom-StringData
	
記事で解説しているパソコンの環境
 基本ソフト: Windows 7
 キーワード: Windows PowerShell、ヘルプ、HelpFile、about_Quoting_Rules
ご利用数: 1917560
感想・要望・問い合わせは こちら