batでutf-16 BOM付ファイルの特定行を置換する処理を作成しています。
意図せず最終行に空白行が追加されるので、それを削除する、もしくは、
最終行の空白行が出力されないようにする方法をご教示ください。
1.文字コード変換 utf-16 BOM付 → SJIS
2.特定行の置換
3.文字コード変換 SJIS→unicode
4.文字コード変換 unicode→unicode BOM付
としています。
各コマンドの概要です。
1.文字コード変換 utf-16 BOM付 → SJIS
start /min /wait cmd /c chcp.com 932 & cmd /c type "(インプットファイ()ル)"> "(アウトプットファイル)"
2.特定行の置換
3.文字コード変換 SJIS→unicode
cmd /u /c type "(インプットファイル)"> "(アウトプットファイル)"
4.文字コード変換 unicode→unicode BOM付
powershell -Command "get-content -Encoding Unicode "(インプットファイル)" | Out-File -Encoding Unicode "(アウトプットファイル)""
4の実現のため、いろいろ調べましたが、powershellでやる方法があったので、それに習っています。
全体のインプットファイルは、空行ではない最終行で終了する(改行コードは付加されない)形式です。それが、4の処理を行うと最終行に空白行を含んだ内容に変換されてしまいます。以降、インプットファイルの最終行が空白なら4の処理では、そのまま出力されます。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/08/07 05:24