文字列変換と加工

大量にある文字列を加工したい!みたいな、町工場の職人さんバリのことをしたい時があります。正規表現秀丸とか使ってやるんですが、固定文字列の埋め込み程度なら、以下の方が楽かもです。

$target = "
aaa
bbb
ccc
"

# 改行で区切る、空行を除外する
$items = $target -split "`r`n"
$items = $items | Where-Object { $_ -ne "" }

# その1.1つずつ SQL 文として表示する
foreach ($item in $items) {
    Write-Host ("INSERT INTO Table1 (Id, Name) VALUES (1, `"" + $item + "`")")
}

# その2.1つずつ C# のスニペットとして表示する
foreach ($item in $items) {
    Write-Host ("sb.AppendLine(`"" + $item + "`");")
}

出力結果

INSERT INTO Table1 (Id, Name) VALUES (1, "aaa")
INSERT INTO Table1 (Id, Name) VALUES (1, "bbb")
INSERT INTO Table1 (Id, Name) VALUES (1, "ccc")
sb.AppendLine("aaa");
sb.AppendLine("bbb");
sb.AppendLine("ccc");

sbっていう変数はStringBuilderです。こういう、一時的にプログラムを書きたい場合、Visual Studio だと要らないソースコードが生成されて残っちゃうので(気にしなければいいのだけれど)、PowerShell ISE で作ったり、LINQPad で作ったりすると楽ですね~。ただ逆に、こういうのって数か月、数年置きにもう一回ほしくなるので、やっぱり残しておいた方がいいのかな・・・