Usando este post da pilha estouro, (nomeado head.bat pelo autor) pode ser alterado para fazer exatamente o que você está pedindo.
head.bat 3 foo.csv
Isso levará as primeiras n linhas de foo.csv
e criará um arquivo chamado bar.csv
que contém apenas essas três linhas. Você pode alimentar o nome do arquivo e contar ou simplesmente chamar isso do seu arquivo de lote.
Isso pode ser usado com o comando for
e variáveis adicionais para processar vários arquivos e gerar vários arquivos.
@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>>bar.csv %%a
set /a counter+=1
)
goto :eof
:usage
echo Usage: head.bat COUNT FILENAME