Discussione:
Batch per rimuovere un carattere
(troppo vecchio per rispondere)
Simone Scaini
2007-04-12 08:00:57 UTC
Permalink
Ciao.
Sto cercando il modo per eliminare l'ultimo carattere in un file di
testo attraverso un file batch, poiché è un'operazione che devo
eseguire molte volte.
Questo carattere è noto, e precisamente si tratta di un "!".
Ho provato utilizzando il comando

find /v "!" %fileName% >> %nuovofile%

ma il problema è che all'inizio mi aggiunge due righe di riepilogo per
il comando find.

C'è qualcuno che saprebbe aiutarmi?
Grazie

Simone
Gioacchino
2007-04-12 10:37:24 UTC
Permalink
Post by Simone Scaini
Ciao.
Sto cercando il modo per eliminare l'ultimo carattere in un file di
testo attraverso un file batch, poiché è un'operazione che devo
eseguire molte volte.
Questo carattere è noto, e precisamente si tratta di un "!".
Ho provato utilizzando il comando
find /v "!" %fileName% >> %nuovofile%
ma il problema è che all'inizio mi aggiunge due righe di riepilogo per
il comando find.
C'è qualcuno che saprebbe aiutarmi?
Grazie
Simone
Esegui questo:

#################

@echo off
if "%1"=="" goto errore
if not exist %1 goto errore
echo.a80 >deb
echo.dec cx >>deb
echo. >>deb
echo.p=80 >>deb
echo.w >>deb
echo.q >>deb
debug ciao.txt <deb >nul
del deb
goto fine
:errore
echo.Rimuove l'ultimo carattere da un file
echo.
echo.%0 nomedelfile
:fine

#################

Lo script non si preoccupa se ! è l'ultimo carattere, lo rimuove
comunque. Se ! è in una riga con CR e LF, allora conviene togliere
anche quelli, sostituisci la quarta riga:
dec cx
con:
sub cx, numero
dove numero sono i byte da sottrarre al file

nota: se hai voglia puoi modificare lo script per fare in modo di
controllare che la dimensione del file non scenda al di sotto dello
zero, altrimenti il valore di CX andrà in underflow ed avrai un file di
una dimensione prossima a FFFF!

--
Ambarabà Biccì Coccò
2007-04-13 08:00:20 UTC
Permalink
"Simone Scaini" <***@gmail.com> wrote in news:***@q75g2000hsh.googlegroups.com:

find /v "!" < %fileName% > %nuovofile%

usando < per il file in input le due righe iniziali non vengono messe
--
ABC
Loading...