• 締切済み

batファイルの改変をお願いします

PC内のshift-jisのテキストファイルを事情により全てutf-8(BOM付)に変える必要があります。 ネットを探したところ下記サイトでbatファイルの作り方がありました。 http://www.shegolab.jp/entry/windows-conv-text-utf8 ↓スクリプトの内容 @echo off :Shift_JIS -> BOM UTF-8 setlocal enabledelayedexpansion for %%f in (%*) do ( echo %%~ff| findstr /l /e /i ".txt .csv" if !ERRORLEVEL! equ 0 ( powershell -nop -c "&{[IO.File]::WriteAllText($args[1], [IO.File]::ReadAllText($args[0], [Text.Encoding]::GetEncoding(932)), [TEXT.Encoding]::UTF8)}" \"%%~ff\" \"%%~ff.bom+utf8%%~xf\" ) ) このスクリプトですとオリジナルのファイルの他にファイル名が「ファイル名.txt.bom+utf8.txt」となり、ファイルが増えてしまいます。私としてはオリジナルの文字コードが変わって上書き保存されれば問題ないのです。 このような要望を満たすようにスクリプトの変更をお願いします。

みんなの回答

  • mt2015
  • ベストアンサー率49% (258/524)
回答No.2

何故バッチファイルの質問をExcelカテゴリーでしているのか解りませんが、Excelで解決したいのでしょうか? Excel2016でしたら保存時に「CSV UTF-8(カンマ区切り)(*.csv)」を選択して保存すればUTF-8(BOM付)で保存できます。

lock_on
質問者

お礼

カテゴリが違うのですね。 失礼しました。

回答No.1

変換処理で「ファイル名.txt」から「ファイル名.txt.bom+utf8.txt」を作っているので、変換処理の次の行に「ファイル名.txt.bom+utf8.txtをファイル名.txtにコピーする処理」と「ファイル名.txt.bom+utf8.txtを削除する処理」を付け足して下さい。

lock_on
質問者

お礼

全然そんな知識がないので。。。 なんとか助けてください。

関連するQ&A