Batch forコマンドでファイル読み込み
■事前準備
読み込み用に下記ファイルを用意する
・sample1.txt
AA
BB
CC
・sample2.txt
AA aa
BB bb
CC cc
・sample3.txt
AA,aa
BB,bb
CC,cc
・sample4.txt
AA
BB
CC
■forコマンドを記述した「Run.bat」を作成する
@echo off
rem 1行目だけを読み込んで表示
echo === ファイルの1行目だけを読み込んで表示します ===
set /p str=<sample1.txt
echo %str%
echo;
rem ファイル内容を読み込んで表示
rem 「f」オプションでファイル読み込み
echo === ファイルの内容を読み込んで表示します ===
for /f %%a in (sample1.txt) do (
echo %%a
)
echo;
rem ファイルサイズを取得して表示
rem 「~z」を変数に追記してバイト数取得
echo === ファイルサイズを取得して表示します ===
for %%a in (sample1.txt) do (
set size=%%~za
)
echo %size%バイト
echo;
rem スペースを含んだファイル内容を読み込んで表示
rem 「"delims="」でスペース等があっても1行読み込む
echo === スペースを含んだファイルの内容を1行目から3行目まで読み込んで表示します ===
for /f "delims=" %%a in (sample2.txt) do (
echo %%a
)
echo;
rem スペースを含んだファイル内容を読み込んで表示
rem "tokens=列番号 delims=スペース"
echo === スペースを含んだファイルの内容の2列目の文字列を読み込んで表示します ===
for /f "tokens=2 delims= " %%a in (sample2.txt) do (
echo %%a
)
echo;
rem カンマ区切りのファイル内容を読み込んで表示
rem "tokens=開始列番号-最終列番号 delims=カンマ"
rem 「%%a」を1列目とした場合、その次の列は「&&b」
echo === カンマ区切りのファイルの内容を読み込んで表示します ===
for /f "tokens=1-2 delims=," %%a in (sample3.txt) do (
echo %%a %%b
)
echo;
rem 行数を表示 ※空行含まず
rem 「a」オプションで計算結果を代入
rem count+=1 ⇒ 1ずつ増やして変数countに代入
echo === 行数を表示 ※空行含まず ===
set count=0
for /f "delims=" %%a in (sample4.txt) do (
set /a count+=1
)
echo %count%行
echo;
pause
「Run.bat」を実行して内容を確認