文字列変換と加工
大量にある文字列を加工したい!みたいな、町工場の職人さんバリのことをしたい時があります。正規表現で秀丸とか使ってやるんですが、固定文字列の埋め込み程度なら、以下の方が楽かもです。
$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 で作ったりすると楽ですね~。ただ逆に、こういうのって数か月、数年置きにもう一回ほしくなるので、やっぱり残しておいた方がいいのかな・・・