Script em lote com findstr e “line to long”

0

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?

    
por Bucko 17.06.2018 / 21:59

0 respostas