« forコマンドの憂鬱。ファイルセットのリカージョン | トップページ | ADODB.Streamを使って、UTF-8 の BOM を除去する。 »

2009年5月17日 (日)

バッチファイルだけで、UnicodeLE や UTF-8 の BOM を除去する。

UnicodeLE の BOM を除去する。

cmd /u /c type BOMありUnicodeファイル > BOMなしUnicodeファイル

これを利用して、

UTF-8 の BOM を除去する。

utf8-bom.cmd BOMありUTF-8ファイル BOMなしUTF-8ファイル

start /min /wait cmd /c chcp.com 65001 ^& cmd /u /c type %1 ^>$$$ ^& cmd /c type $$$ ^>%2 ^& del $$$

こちらは上書き保存も可。

さらに、複数のBOMあり/なし不定のUTF-8ファイルをワイルドカードやドロップで、BOMがあれば削除して上書きする。

for-utf8-bom.cmd BOMあり/なしUTF-8ファイル...

for %%1 in (%*) do start /min /wait cmd /v:on /c chcp.com 65001 ^& cmd /u /c type %%1 ^>$$$ ^& set /p x=^<$$$ ^& ^( if "!x:~0,2!"=="" cmd /c type $$$ ^>%%1 ^) ^& del $$$

« forコマンドの憂鬱。ファイルセットのリカージョン | トップページ | ADODB.Streamを使って、UTF-8 の BOM を除去する。 »