1. ホーム
  2. batch-file

[解決済み] テキストファイルから1行目を読み込むWindowsバッチコマンド

2023-03-29 03:08:55

質問

Windows のバッチファイルを使用して、テキストファイルから最初の行を読み取るにはどうしたらよいでしょうか。ファイルが大きいので、最初の行だけを処理したいのです。

どのように解決するのですか?

以下は、先頭を印刷するための汎用バッチファイルです。 n のようなファイルから、一番上の行を表示する汎用バッチファイルです。 head ユーティリティのようなファイルから、一行だけでなく

@echo off

if [%1] == [] goto usage
if [%2] == [] goto usage

call :print_head %1 %2
goto :eof

REM
REM print_head
REM Prints the first non-blank %1 lines in the file %2.
REM
:print_head
setlocal EnableDelayedExpansion
set /a counter=0

for /f ^"usebackq^ eol^=^

^ delims^=^" %%a in (%2) do (
        if "!counter!"=="%1" goto :eof
        echo %%a
        set /a counter+=1
)

goto :eof

:usage
echo Usage: head.bat COUNT FILENAME

例えば

Z:\>head 1 "test file.c"
; this is line 1

Z:\>head 3 "test file.c"
; this is line 1
    this is line 2
line 3 right here

現在、空行はカウントされません。 また、バッチファイルの行長制限である8KBに従います。