Powershellで改行コードをCRLFに一括置換する¶
Powershellで、フォルダ内(サブフォルダ含む)のファイルの改行コードをCRLFに一括置換する。
CSVだけ対象にし、文字コードがShift_JISの場合¶
ls -r -file -filter *.csv | % { (get-content -encoding Default $_.FullName) -join "`r`n" | set-content -encoding Default $_.FullName }
CSV以外を対象にし、文字コードがUTF8の場合¶
ls -r -file -exclude *.csv | % { (get-content -encoding UTF8 $_.FullName) -join "`r`n" | set-content -encoding UTF8 $_.FullName }
-filterで対象のファイルの拡張子を指定。-excludeで除外するファイルの拡張子を指定。`r`nを`nに書き換えれば、LFに一括置換になるが、最後にCRLFの改行が入る。最後の改行を省くにはset-content -NoNewlineとする。
注釈
上記スクリプトはファイル自体が書き換わるので注意。
UTF8はBOM付きになるので注意。BOM無しにするには
set-contentではなく .NET Framework の[System.IO.File]::WriteAllLinesメソッドなどを使う。
Comments
comments powered by Disqus