バッチファイルでファイルを読む方法(その2)
「ファイルの全行を読む。」
× FOR /F %%0 IN (ファイル) DO ECHO %%0
※ 行の一部(第1トークン)しか読めない。
× FOR /F "tokens=*" %%0 IN (ファイル) DO ECHO %%0
※ 行の先行空白が読めない。
× FOR /F "delims=" %%0 IN (ファイル) DO ECHO %%0
※ 空行が読めない。
× FOR /F "delims=[] tokens=1*" %%1 IN ('FIND /N /V "" ^<ファイル') DO ECHO;%%2
※ FINDで行番号[n]を付けて、[と]を区切文字にして、第2トークンを取り出す。
※ 'FIND /N /V "" ファイル'だと、先頭に'---------- ファイル'という行が付く。
※ 行番号nは%%1で取り出せます。
※ 空のとき、「ECHO は <ON> です。」が出ないよう、ECHO;←区切文字を入れる。
※ 行頭に、[や]があると消えるので、駄目ですね。
○ SETLOCAL ENABLEDELAYEDEXPANSION
FOR /F "delims=" %%0 IN ('FIND /N /V "" ^<ファイル') DO (
SET L=%%0
SET N=!L:~1!
SET /A N=N
ECHO;!L! !L:*]=!
※ [n]行本体 から*]を削除すると行本体が得られます。
※ n]行本体 をSET /Aで代入すると行番号が得られます。
※ FOR /F "delims=[]" %%1 IN ("%%0") DO ECHO;%%1 としても行番号が得られます。
« 純正のforfiles.exeを使おう。 | トップページ | バッチファイル、コンソールアプリなどを非表示で実行する。 »