改行文字変換フィルタをバッチファイルで作る。(その2)
異常な改行文字(CR+CR+LF)を正常な CR+LF に変換します。
pingなどのunix由来のネットワーク系コマンドの改行文字は異常です。
CR+CR+LF になっています。
コンソール画面で見た目には同じですが、プログラムで処理するときに困ります。
CrCrLf.CMD <CR+CR+LF >CR+LF
---
@echo off
setlocal disabledelayedexpansion
for /f "delims=" %%1 in ('find /n /v ""') do (
set LINE=%%1
setlocal enabledelayedexpansion
call echo;!LINE:*]=!
endlocal
)
---
CRは、%環境変数%の展開時に消えます。
%%FOR変数や!環境変数!は、%環境変数%の後に展開されるので、
echo;%%FOR変数
や
echo;!環境変数!
では残ります。
しかし、CALL文では、展開が2回実行されるので、
call echo;%%FOR変数
や
call echo;!環境変数!
では、2回目で消えます。
« コマンドプロンプトやバッチファイルで、環境変数に改行文字(CR)を入れて使う。 | トップページ | 改行文字変換フィルタをバッチファイルで作る。(その3) »