PowerShell Grepして置換
Grepして置換するサンプルを作ってみました。
Grepして置換
$basePathに対象フォルダ、$fromに変更元文字、$toに変更先文字を指定します。ファイルの文字コードはUTF8を指定しています。
.txtファイルのみを対象としています。
$basePath = "C:\work\powershell"
$from = "変更元"
$to = "変更先"
$listA = Get-ChildItem $basePath -Filter *.txt -Recurse | Select-String $from
$ary = @()
$UTF8 = New-Object System.Text.UTF8Encoding $False
foreach ($obj in $listA) {
if ($ary.Contains($obj.Path) -eq $False) {
$ary += ($obj.Path)
}
}
foreach ($path in $ary) {
Write-Output $path
$data = Get-Content $path -Encoding UTF8
$data = $data | ForEach-Object { $_ -replace $from, $to }
[System.IO.File]::WriteAllLines( $path, $data, $UTF8)
}
ページのトップへ戻る