リストファイルに記載したファイル一覧に対して、リストファイルに記載した文字列セットを一括置換するツール。
たとえば、大阪・東京に同じ環境を構築するときとか。IPアドレスだったりホスト名とかだけ一斉置換できたらいいかなと思って。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
[string]$FILELIST = "C:\work\tool\input_file.txt" [string]$REPLACELIST = "C:\work\tool\input_replace.txt" [string]$OSAKADIR = "C:\work\osaka\" [string]$TOKYODIR = "C:\work\tokyo\" Get-Content $FILELIST | ForEach-Object { [string]$INPUTFILENAME = $OSAKADIR + $_ [string]$OUTPUTFILENAME = $TOKYODIR + $_ [array]$TMP = Get-Content $INPUTFILENAME -Encoding UTF8 Get-Content $REPLACELIST | ForEach-Object { [array]$REPLACECOLUM = $_ -split "," $TMP = $TMP | ForEach-Object { $_ -replace $REPLACECOLUM[0],$REPLACECOLUM[1] } } $TMP | Out-File -FilePath ($OUTPUTFILENAME + "_" + (Get-Date -Format "yyyy-MMdd-HHmmss")) -Encoding utf8 } Write-Host "FINISHED" |
1 2 3 |
手順書A.txt 手順書B.txt 手順書C.txt |
カンマ区切りで1カラム文字→2カラム文字に
1 2 3 |
10.197,10.198 OSAKA,TOKYO 【大阪】,【東京】 |