適材適所

パソコン作業の自動化・効率化のための情報を発信するブログ(VBA,PowerShellなど)

PowerShellでファイル内容の置換

PowerShellでファイル内の文字列を置換する際の覚書です。

一発でできるコマンドレットは今のところ存在しない雰囲気なので、簡単に処理できるようにします。

$fileContets=(Get-Content $file) -replace $rep1,$rep2
Out-File -FilePath $file -InputObject $fileContents  -Encoding $enc

おまけ

#ファイルの文字コードを調べる
(New-Object System.IO.StreamReader($file)).CurrentEncoding

このオブジェクトをOut-Fileパラメタの-Encodingに素直に渡せればいいんですが・・・。

-EncodingはString型でValidateSetが "unknown,string,unicode,bigendianunicode,utf8,utf7,utf32,ascii,default,oem なので、うまく渡せないようです・・・。