Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2013
    Messaggi
    2

    (batch) Estrarre righe multiple da un file log

    Salve a tutti,
    Sto creando un batch che estragga gli errori da un file di log ma sono fermo.
    in pratica riesco ad intercettare la stringa di errore con questo:
    @echo off
    setLocal EnableDelayedExpansion
    set SORGENTE=%systemdrive%\log.txt
    set DESTINAZIONE=%systemdrive%\Errori.txt
    find /I "CPSE0152E" %sorgente% >>%DESTINAZIONE%

    Ma ho bisogno di catturare anche le 2 linee successive

    08.14.22 - CPSE0152E 08.14.47 IS-0001 SS-BSS SSU-BSS SE-NODUMP OPR-UFA0001
    08.14.22 - 010000A TRC-ZSC3
    08.14.22 - ZSC3 OBJ-zsc3 00000308 LOADSET-BASE

    Potete aiutarmi?

  2. #2
    Non mi risulta che FIND abbia opzioni del genere, io installerei uno qualunque dei porting di grep per Windows (a quel punto basta l'opzione -A 2).
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2013
    Messaggi
    2
    Purtroppo sono vincolato dalle severe policy di sicurezza che stanno sulla macchina, dovrei riuscire a fare tutto tramite un batch.. il comando find può risolvermi il problema se correttamente combinato ad altri, come per esempio findstr che cerca la stringa e passandogli dei parametri di inizio ^ e fine..MA COME SI FA?? BOH! stamattina mi ci dedico un altro po

  4. #4
    Se findstr supporta le regex multilinea potresti provare con una regex del tipo
    codice:
    ^.*stringadacercare.*$^.*$^.*$
    ma non credo che funzioni. In alternativa forse si può usare una qualche combinazione di for, set e find per analizzare una riga alla volta il file e mostrare le tre righe successive, ma sarebbe una soluzione ingarbugliata e per nulla elegante (come tutto in batch, peraltro).

    Di nuovo, secondo me fai prima ad usare un porting di grep (che non richiede installazione, basta piazzare l'eseguibile nella stessa directory del batch e fine), o in alternativa potresti usare VBScript.
    Amaro C++, il gusto pieno dell'undefined behavior.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.