PowerShell ""ダブルクォーテーションで囲まれた変数が文字列扱いされる場合の書き方

PowerShell ""ダブルクォーテーションで囲まれた変数が文字列扱いされる場合の書き方、対象に関する情報です。


コマンドプロントでうまく動作していたコマンドがPowerShellに置き換えるとエラーが起こることがあります。例えば、記号などが関連します。


記号の箇所でエラーが発生した場合は、文字列扱いにすると成功することがありますが、その対処法で変数が文字列扱いされて、動かなくなることがあります。


その場合に参考になる情報です。

 

簡単な説明
PowerShell で一重引用符と二重引用符を使用するための規則について説明します。

 

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

 

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

 

リモート コンピューターへのコマンドでは、リモート コンピューターで実行されるコマンドの部分を引用符で定義します。リモート セッションでは、引用符は、コマンド内の変数が最初にローカル コンピューターで解釈されるか、リモート コンピューターで解釈されるかを決定します。

 

 

以下が該当の説明です。

 

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


展開可能な文字列に直接埋め込むことができるのは、単純な変数参照のみです。配列のインデックス付けまたはメンバー アクセスを使用する変数参照は、部分式で囲む必要があります。例えば:

"PS version: $($PSVersionTable.PSVersion)"

 


「引用元」
about_Quoting_Rules
https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_quoting_rules?view=powershell-7.3


この部分です。


"PS version: $($PSVersionTable.PSVersion)"

 

本来””でくくられると文字列扱いされますが、()カッコで囲み、$を付与することで回避できます。

 

モバイルバッテリー 軽量 薄型 大容量 10000mAh 2023最新 QC3.0対応 USB Type-C出力&PD22.5W 超急速充電 スマホ充電器 携帯充電器 小型モバイル・バッテリー 3台同時充電でき LCD残量表示 旅行/出張/アウトドア停電/防災緊急用の必携品 iPhone 14 Pro Max iPhone 14 13 12 11 X XS iPad OPPO Samsung Xiaomi Sony Xperia など各種対応 (Black)