【バッチファイル】テキストファイルの行数を取得する

バッチファイルで
 ・テキストファイルの行数を取得
できます!

空白行があっても正しく行数を取得
できます!

コード

ここでは例として、
 ・デスクトップ配下のファイル「aiueo.txt」の
 ・行数を取得
します。
※ファイル「aiueo.txt」は空白行あり。

aiueo.txtの内容(7行ある。空白行あり)
aiueo.txtの内容(7行ある。空白行あり)
@echo off

rem ファイルのパスを指定
set targetFile=C:\Users\user\Desktop\aiueo.txt
rem 行数を取得するコマンドを作成
set cmd="find /v /c "" < "%targetFile%""
rem 変数を初期化
set rowCount=0

rem 行数を取得するコマンドを実行し、結果を変数「rowCount」へ格納
for /f %%a in ('%cmd%') do (
	set rowCount=%%a
)

rem 結果
echo 行数:%rowCount%

echo.
pause
exit

「ファイルのパス」を指定します(4行目)。

「行数を取得するコマンド」を作成します(6行目)。
※「find」コマンドにより行数を取得します。
※「<」をエスケープしなくてもいいように、コマンドを「”(ダブルコーテーション)」で囲みます。

「行数を取得するコマンド」を実行し、結果を変数「rowCount」へ格納します(11~13行目)。
※コマンドの結果を取得するために、forを使用します。
※実行するコマンドを「’」で囲みます。
※for文を使用しないとコマンドの結果を取得できないのは、バッチファイルのイマイチな点と思います。

※for文は本来繰り返し処理をするために使用するものです。

実行結果

テキストファイルの行数を取得できました。

実行結果
実行結果

参考

上記で使用した以下の詳細は、公式サイトをご確認ください。

「find」コマンド


「for」コマンド

タイトルとURLをコピーしました