Estou usando uma solução encontrada no StackOverflow há alguns dias:
@echo off
setlocal enabledelayedexpansion
REM Line number of the delimiter line:
for /F "delims=:" %%a in ('findstr /N "^xxyyzz" "Input.bin"') do set "lines=%%a"
echo %lines%
REM Extract the part of the Input.bin following the delimiter line:
< "Input.bin" (
REM Pass thru the first lines:
for /L %%i in (1,1,%lines%) do set /P "="
REM Copy the rest to output bin:
findstr "^"
) > Output.bin
Isso está funcionando bem, mas com alguns arquivos eu recebo as mensagens de erro "Line ... too long" . Eu sei que esse problema está associado ao piping . Eu também encontrei a dica:
"A linha muito longa erro só acontece quando FINDSTR lê a entrada via redirecionamento ou um pipe. Esse erro desaparece se você passar o nome (caminho) do arquivo diretamente para FINDSTR. "
Como meu script deve ser adaptado (de acordo com a dica acima) para superar esse problema?
Tags windows batch-file