PDA

Visualizza la versione completa : batch leggere ultima riga e salvarla


djjunior
25-10-2014, 23:27
Salve,
Avrei necessità d un comando che legge l ultima riga da un file di testo e successivamente lo salvi in file di testo!
Grazie per l aiuto!!
G.

MItaly
26-10-2014, 15:18
Se puoi installare le GNU coreutils per Windows (qui (http://gnuwin32.sourceforge.net/packages/coreutils.htm)), basta usare tail:


tail -n 1 nomefile.txt > out.txt

djjunior
26-10-2014, 18:10
Ho inslato le GNU coreutils per windows.
Ho provato ad utilizzare il comando tail ma una volta avviato il batch ho errore : TAIL NON RICONOSCIUTO etc
Ho windows xp, devo fare qualche operazione di registro o altro?
grazie

Samuele_70
26-10-2014, 19:36
Se vuoi puoi anche farlo con i comandi batch di windows



@ECHO OFF
FOR /F "delims=" %%a IN (%1) DO SET LastLine=%%a
ECHO.Save '%LastLine%' in '%2'
ECHO.%LastLine% > %2
PAUSE


Ammesso che chiamerai il file "SalvaUltimaRiga.bat" lo usi con
SalvaUltimaRiga.bat FileSorgente.txt FileDestinazione.txt

Samuele_70
26-10-2014, 21:13
E se vuoi evitare eventuali righe vuote alla fine del file


@ECHO OFF
FOR /F "delims=" %%a IN (%1) DO (
IF [%%a] NEQ [] SET LastLine=%%a
)
ECHO.Save '%LastLine%' in '%2'
ECHO.%LastLine% > %2
PAUSE

djjunior
27-10-2014, 09:40
Nel ringraziarti, perdonami ma non mi è chiaro dove inserire il file sorgente txt e file destinazione txt
Grazie

Samuele_70
27-10-2014, 19:31
Di solito i comandi batch sono eseguiti da riga di comando, da qui la sintassi che ti suggerivo.
Ma nulla vieta di scrivere i nomi dei file di testo direttamente nel tuo file batch.

djjunior
27-10-2014, 19:38
Ecco e sul codice che mi hai suggerito dove dovrei mettere il file di origine e destinazione direttamente nello script?GrazieG

oregon
27-10-2014, 19:55
Beh, i parametri sono %1 e %2 ... quindi

djjunior
28-10-2014, 14:24
Perfetto, grazie 1000 a tutti.
Ho notato che copia correttamente l'ultimo rigo però mi cancella un simbolo a me necessario : questo ^ che è tra due parole
Come posso ovviare?
Grazie
G.

Loading