2017年11月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    
無料ブログはココログ

« FORコマンドで、行のフィールドを順次取り出す。 | トップページ | コマンドプロンプトやバッチファイルで、環境変数に制御文字を入れる。 »

2008年11月 4日 (火)

改行文字変換フィルタをバッチファイルで作る。

テキストファイルの改行文字は、OSで異なります。
DOS/Windows CR+LF
Unix/Linux  LF
Mac/MainFrame  CR

変換フィルタは、SFUにあり、それだけコピーしても使えます。
dos2unix.exe
unix2dos.exe

SFUがなくても、バッチファイルで代替できます。

dos2unix.cmd <CR+LF >LF
---
@echo off
setlocal disabledelayedexpansion
set LF=^

for /f "delims=" %%1 in ('find /n /v ""') do (
set LINE=%%1
setlocal enabledelayedexpansion
<NUL set /p LINE=!LINE:*]=!!LF!
endlocal
)
---

unix2dos.cmd <LF >CR+LF
---
@find /v ""
---
または、
---
@echo off
setlocal disabledelayedexpansion
for /f "delims=" %%1 in ('find /n /v ""') do (
set LINE=%%1
setlocal enabledelayedexpansion
echo;!LINE:*]=!
endlocal
)
---

moreを使ってもできますが、その場合はタブが空白展開されます。

« FORコマンドで、行のフィールドを順次取り出す。 | トップページ | コマンドプロンプトやバッチファイルで、環境変数に制御文字を入れる。 »