-Join ("文字列1", "文字列2")
PowerShellのスクリプト内で文字列を結合したい場合があります。この記事では、+
演算子を用いる方法と-Join
演算子を用いる方法での文字列の結合コードを紹介します。
2つの文字列を結合する場合には以下の書式を利用します。
-Join ("文字列1", "文字列2")
文字列は複数与えることができます。
-Join ("文字列1", "文字列2", ... "文字列n")
文字列には変数を与えることもできます。
また、リスト変数を与えた場合は、リストの各要素を結合します。
文字列結合の際に文字列と文字列の間に区切り文字を追加する場合は、次の書式が利用できます。
"文字列1", "文字列2", ... "文字列n" -Join "区切り文字"
"文字列1" + "文字列2"
文字列には変数を与えることもできます。
同一の変数に文字列を足しこむ場合には以下の書式が利用できます。
文字列変数1 += 文字列変数2
上記の記述は下記の記述と同様です。
文字列変数1 = 文字列変数1 + 文字列変数2
下記のPowerShellスクリプトを作成します。
$string1 = "ペンギン"
$string2 = "くじら"
$string3 = "White Bear"
$joinstr1 = -Join ($string1, $string2)
Write-Output $joinstr1
$joinstr2 = -Join ($string1, $string2, $string3)
Write-Output $joinstr2
$joinstr2 = $string1, $string2, $string3 -Join "と"
Write-Output $joinstr2
-Join
演算子で2つの文字列を結合するコードです。
$joinstr1 = -Join ($string1, $string2)
Write-Output $joinstr1
-Join
演算子で3つの文字列を結合するコードです。
$joinstr2 = -Join ($string1, $string2, $string3)
Write-Output $joinstr2
区切り文字を使用して3つの文字列を結合するコードです。文字列の間に「と」の文字を追加します。
$joinstr2 = $string1, $string2, $string3 -Join "と"
Write-Output $joinstr2
スクリプトを実行します。結果が表示されます。文字列が結合されていることが確認できます。
区切り文字の結合も正しく実行されています。
ペンギンくじら
ペンギンくじらWhite Bear
ペンギンとくじらとWhite Bear
下記のPowerShellスクリプトを作成します。
$string1 = "ペンギン"
$string2 = "くじら"
$string3 = "White Bear"
$joinstr1 = $string1 + $string2
Write-Output $joinstr1
$joinstr2 = $string1 + $string2 + $string3
Write-Output $joinstr2
$joinstr3 = $string1
$joinstr3 += $string2
$joinstr3 += $string3
Write-Output $joinstr3
下記のコードは2つの文字列変数の結合結果を画面に表示します。
$joinstr1 = $string1 + $string2
Write-Output $joinstr1
下記のコードは3つの文字列変数の結合結果を画面に表示します。
$joinstr2 = $string1 + $string2 + $string3
Write-Output $joinstr2
こちらのコードは文字列変数に足しこんでいくコードです。先の3つの文字列変数の結合結果と同じになります。
$joinstr3 = $string1
$joinstr3 += $string2
$joinstr3 += $string3
Write-Output $joinstr3
スクリプトを実行します。結果が表示されます。文字列が結合されていることが確認できます。
ペンギンくじら
ペンギンくじらWhite Bear
ペンギンくじらWhite Bear
下記のPowerShellスクリプトを作成します。
$string1 = "ぺんぎんクッキー", "らくだキャラメル", "しろくまアイス", "かるがもサブレ"
$string2 = "あるぱかカステラ", "しまうまバウムクーヘン", "かんがるータルト", "しろさい大福"
$joinstr1 = -Join $string1
Write-Output $joinstr1
$joinstr2 = $string2 -Join ":"
Write-Output $joinstr2
リストの各要素の文字列を結合します。
$joinstr1 = -Join $string1
Write-Output $joinstr1
リストの各要素の文字列を結合します。各要素を":"で区切り結合します。
$joinstr2 = $string2 -Join ":"
Write-Output $joinstr2
スクリプトを実行します。結果が表示されます。文字列が結合されていることが確認できます。
ぺんぎんクッキーらくだキャラメルしろくまアイスかるがもサブレ
あるぱかカステラ:しまうまバウムクーヘン:かんがるータルトしろさい大福
$string1
$string2
が配列(リスト)の場合、以下の書式では2つの配列の要素の値が出力される動作にはなりません。
先に配列を結合する必要があります。配列の結合についてはこちらの記事を参照してください。$joinstr = -Join ($string1, $string2)
$joinstr = $string1, $string2 -Join "-"
PowerShellで文字列の結合処理を実装できました。
薄紫の夕焼けが魔導世界アーカシアの都アルセンの尖塔を染める頃、王立図書塔の最上階では、転生者ハルトがもどかしげに羊皮紙を丸めていた。
部屋の中央には、水晶ランプに照らされた大机。その向かいで見習い魔導士リアが杖を抱え、膨らんだ好奇心を隠しきれずにいる。
「君の“パワーシェル”とやら――本当に魔術なのかしら?」
「むしろ魔法より便利さ。今日は“言霊の束ね方”を見せるよ。つまり文字列の結合だ」
ハルトは杖代わりの鉄製ロッドを掲げ、机の上に小さな青いコンソール・オーブを出現させた。漆黒の球体に、淡い光文字が浮かび上がる。
powershell PS> $a = "炎"
PS> $b = "雷"
PS> $a + $b
powershell PS> $elements = "火","水","風"
PS> $spell = $elements -join ", "
PS> $spell
powershell PS> $runes = "アクア","インフィニティ","サージ"
PS> ($runes -join "") + "!"
powershell PS> ($runes -join "") -replace "サージ","サージ・テイム"
水の獣はたちまち子犬のように静まり、リアの足下で尻尾ならぬ水流を振って座り込んだ。塔の窓からは、濡れ鼠になった衛兵たちの悲鳴がかすかに聞こえる。
リアが呆れと笑いの混ざった目を向けた。
「これが“うまいオチ”ってやつ?」
「……“‐join”したら、オチまで巻き込む。文字列も魔法も、後始末が肝心って教訓さ」
ぴしゃりと背後で扉が開き、館長が滴るローブを絞りながら吼え立てる。
ハルトはそっとオーブの電源――いや、魔力回路を落とした。
こうしてアーカシアには、新たな格言が生まれた。
――「言霊を繋ぐ時は、結び目よりバケツを先に用意せよ」。