2022年5月
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 31        
無料ブログはココログ

« 環境変数の置換文字列に環境変数を使う。 | トップページ | 「検索コンパニオン」を開く。 »

2008年11月12日 (水)

改行文字変換フィルタをバッチファイルで作る。(その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
の行で遅延展開を無効にしているのは、もし有効だと、行中の ! が消えるからです。

« 環境変数の置換文字列に環境変数を使う。 | トップページ | 「検索コンパニオン」を開く。 »