ファイルの読み書き

久しぶりのバッチスクリプトネタ。

for /fでファイルを読むと、空行の無視その他いろいろ問題があるので、どんなテキストファイルでも読む方法。

@echo off
setlocal enabledelayedexpansion
set INFILE=XXXXXXXX
set OUTFILE=YYYYYYYY
for /f %%A in ('find /c /v "" ^<%INFILE%') do set N=%%A
(
  for /l %%A in (1,1,%N%) do (
    set XXX=
    set /p XXX=
    echo:!XXX!
  )
) < %INFILE% > %OUTFILE%