PowerShell で文字列を連結する

Marion Paul Kenneth Mendoza 2023年1月30日
  1. PowerShell で+ 演算子を使用して文字列を連結する
  2. PowerShell でセパレータを使用して文字列を連結する
  3. PowerShell での文字列と整数の連結
  4. PowerShell で文字列置換を使用して文字列を連結する
  5. PowerShell で -f 演算子を使用して文字列を連結する
  6. PowerShell で -join 演算子を使用して文字列を連結する
  7. PowerShell で文字列ビルダーと append() 関数を使用して文字列を連結する
  8. PowerShell で concat() 関数を使用して文字列を連結する
PowerShell で文字列を連結する

PowerShell では、複数の方法で文字列の連結を実現します。ただし、PowerShell には独自の concat() 関数が組み込まれていますが(これについては後で説明します)、さまざまな文字列変数を結合するためのより簡単な方法があります。

すべての文字列連結メソッドを列挙する前に、例として使用するいくつかの文字列変数を宣言することをお勧めします。

$str1 = "First"
$str2 = "Second"
$str3 = "Third"

以下は、PowerShell で文字列を連結するためのすべての可能なメソッドです。

PowerShell で+ 演算子を使用して文字列を連結する

文字列を連結する最も基本的な方法は、+ 演算子を使用することです。連結は、両方の変数が文字列変数である場合にのみ、+ 演算子で機能します。+ 演算子が 2つ以上の整数型変数で使用されている場合、スクリプトは式を数学的に処理します。

コード例:

$concatString = $str1 + $str2 + $str3
Write-Output $concatString

出力:

FirstSecondThird

PowerShell でセパレータを使用して文字列を連結する

文字列を連結するために使用する必要があるのは+ 演算子だけでなく、コンマ(,)のような区切り文字も使用できます。文字列変数を二重引用符""で囲むことを忘れないでください。そうしないと、変数は分離された文字列値をリストプロパティとして解釈します。

コード例:

$concatString = "$str1 , $str2 , $str3"
Write-Output $concatString

出力:

First , Second , Third

また、これはコンマでのみ機能するわけではないことを忘れないでください。文字列の貴重品を二重引用符で囲むと、文字列変数がリテラル式になります。WYSIWYG(あなたが見るものはあなたが得るものです。)

コード例:

$concatString = "Who came in $str1 , $str2 , and $str3 Place?"
Write-Output $concatString

出力:

Who came in First , Second, and Third Place?

PowerShell での文字列と整数の連結

文字列を整数で連結しようとすると、無効な型エラーが発生します。以下の例では、新しい変数 $concatString は、データ型として $int1 変数の型を取ります。これは整数です。これは、$int1 が式 $int1 + $str1 で最初に呼び出されるために発生します。

コード例:

$int1 = 0
$concatString = $int1 + $str1 #int variable before string variable
Write-Output $concatString

出力:

Cannot convert value "First" to type "System.Int32". Error: "Input string was not in a correct format."
At line:3 char:1
+ $concatString = $int1 + $str1
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [], RuntimeException
    + FullyQualifiedErrorId : InvalidCastFromStringToInteger

文字列変数 $str1 を式の最初に配置すると、連結が成功し、$int1 が自動的に文字列値に変換されます。

コード例:

$int1 = 0
$concatString = $str1 + $int1 #str variable before int variable
Write-Output $concatString

出力:

First0

PowerShell で文字列置換を使用して文字列を連結する

または、文字列置換を使用して別の連結方法を実行することもできます。このメソッドは、さまざまなデータ型の文字列を連結する場合にも機能します。

コード例:

$int1 = 0
$concatString = "$($int1) , $($str2)"
Write-Output $concatString

出力:

0 , Second

PowerShell で -f 演算子を使用して文字列を連結する

文字列を連結する別の方法は、-f 演算子を使用することです。-f 演算子は、事前に作成された文字列値の引数として文字列変数を渡すことを利用します。

コード例:

$concatString = "{0}.{1}.{2}." -f $str1,$str2,$str3
Write-Output $concatString

出力:

First.Second.Third

PowerShell で -join 演算子を使用して文字列を連結する

-join 演算子は、パラメーターとして文字列区切り文字を渡す必要があるため、区切り文字と同様に機能します。

コード例:

$concatString = $str1,$str2,$str3 -join "!"
Write-Output $concatString

出力:

First!Second!Third

PowerShell で文字列ビルダーと append() 関数を使用して文字列を連結する

このプロセスを開始するには、別のオブジェクトタイプ System.Text.StringBuilder を呼び出す必要があるため、文字列ビルダーは文字列を連結する複雑な方法の 1つです。次に、オブジェクトは append() 関数を使用して文字列を連結し、ToString() 関数を使用して新しいオブジェクトを文字列値に変換し直します。

コード例:

$concatString = New-Object -TypeName System.Text.StringBuilder
$null = $concatString.Append($str1)
$null = $concatString.Append($str2)
$null = $concatString.Append($str3)
$concatString = $concatString.ToString()

Write-Output $concatString

出力:

FirstSecondThird

PowerShell で concat() 関数を使用して文字列を連結する

最後に、PowerShell 独自の concat() 関数があります。

コード例:

$concatString = [System.String]::Concat($str1,".",$str2,".",$str3)
Write-Output $concatString

出力:

First.Second.Third
Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn

関連記事 - PowerShell String