改行文字変換フィルタをバッチファイルで作る。(その4)
CR を CR+LF に変換します。
cr2dos.cmd <CR >CR+LF
---
@echo off
setlocal enabledelayedexpansion
set LF=^
for /f "delims=" %%1 in ('cmd /u /c echo;名') do (
set CR=%%1
set CR=!CR:~0,1!
)
setlocal disabledelayedexpansion
for /f "delims=" %%1 in ('find /n /v ""') do (
set LINE=%%1
setlocal enabledelayedexpansion
set LINE=!LINE:*]=!
if defined LINE (
cmd /v:on /c echo;%%LINE:!CR!=^^!CR^^!^^!LF^^!%%
) else (
echo;
)
endlocal
)
---
ここで、
for /f "tokens=1* delims=]" %%1 in ('find /n /v ""') do (
set LINE=%%2
としないのは、行頭の ] が消えるからです。
また、
set LINE=%%1
の行で遅延展開を無効にしているのは、もし有効だと、行中の ! が消えるからです。