Newsgroup: it.comp.os.dos
Titolo: Batch art help: segnalare nuovi files ?

Ciao ragazzi, 
	mi date una traccia da cui partire? Sara' l'influenza ma
proprio non mi viene in mente niente :(
Ho una directory con nomi di files di lunghezza fissa con matrice:
00000000.ext dove 00000000 e' un numero esadecimale che cresce
all'apparire di un nuovo files, ext e' fisso. Esempio:
00000001.ext
00000002.ext
....
0000001a.ext
etc.
Ora, ad una certa ora con uno scheduler devo vedere se ci sono nuovi
files in fondo alla lista rispetto alla verifica precedente. Mi serve
solo sapere se ci sono files aggiunti in progressione, non il numero
esatto. Il fatto che magari i primi in ordine cronologico spariscano
dopo poco non dovrebbe essere influente, o no? :)
Mi aiutate? :)
        Salumi ed Affetti
             Gianni
*Togli lo Speck per rispondermi*

dopo poco non dovrebbe essere influente, o no? :)
beh, se ti sei salvato il numero dell'ultimo file nella lista, non
sarà influente,
altrimenti lo sarà eccome!
cod



Fai dapprima un batch con le seguenti istruzioni:
@echo off
dir *.ext /b >list1.txt
poi quando vuoi fare il test, fai un secondo batch con queste altre istruzioni:
@echo off
dir *.ext /b >list2.txt
FC list1.txt list2.txt|find "nessuna differenz">nul
if errorlevel 1 echo list1 e list2   DIFFERENTI
Ovvio che al posto di "echo list1 e list2   DIFFERENTI" ci puoi mettere un goto
ad una etichetta che ti fa il servizio che hai bisogno!
Non modificare la riga con il comando "FC" a meno di cambiare il nome dei files
"list1" e "list2" , altrimenti il gioco non funziona.
-- 
FORSE un virus? Accertatene! 
http://www.avp.it/
         ADOTTA ANCHE TU
Curiosita'? Prova a CERCARE! 
http://www.google.com/
              QUESTA
Informazioni utili:          
http://members.nbci.com/gouldukat
     SIGN
MAIL anonima, allegato .EXE? 
http://www.google.com/search?q=hybris
  :-)

altrimenti lo sarà eccome!
Ok, mi spiego meglio: la cartella da verificare contiene un certo
numero di files variabile "ad organino", ma ognuno con un nome
progressivo (in esadecimale). Devo vedere, con un batch dos, quando ci
sono "nuovi" files rispetto al check precedente. 


if errorlevel 1 echo list1 e list2   DIFFERENTI
Ti ringrazio dell'aiuto, ma mi sono espresso male: come spiegato in un
messaggio precedente, devo vedere se ci sono NUOVI files. Potrebbe
succedere una cosa di questo genere:
file1.ext
file2.ext
file3.ext
Se successivamente la situazione fosse:
file2.ext
file3.ext
non ci sarebbero nuovi files, ma il tuo sistema genera un falso
allarme, ma se fosse:
file2.ext
file3.ext
file4.ext
ci sarebbero sempre tre files ma uno di questi sarebbe nuovo.
Funzionerebbe, ma non vorrei avere i falsi allarmi di cui sopra. In
sintesi, dovrei memorizzarmi l'ultimo nome file, facendo un dir /on,
invece che tutta la lista. Come faccio ? 
Grazie dell'aiuto :)


>>esatto. Il fatto che magari i primi in ordine cronologico spariscano
Ci ho lavorato per 2 ore ma spero di esserci riuscito, almeno nelle prove che
ho fatto!
Ti servono 2 files batch principali + 2 ausiliari:
Primo file che _deve_ chiamarsi    MOV.BAT   e composto dalla sola riga:
find /v "%1" list2.txt|find /v "-----">list2.txt
Poi il file principale, che io ho chiamato   GO.BAT:
@echo off
cls
type list1.txt > list.bat
set prmptsav=%prompt%
REM Nella riga seguente, c'è uno spazio dopo "mov"!!!
prompt call mov 
ctty nul
command /c list.bat > ~tmp.bat
ctty con
del list.bat
call ~tmp
del ~tmp.bat
prompt %prmptsav%
set prmptsav=
echo.
find ".ext" list2.txt > nul
if errorlevel 1 echo NESSUN AGGIORNAMENTO
if not errorlevel 1 type list2.txt
Poi a discrezione 2 altri file aggiuntivi per creare le liste:
1.bat
dir /b /on *.ext>list1.txt
REM	crea la lista iniziale
2.bat
dir /b /on *.ext>list2.txt
REM	crea la seconda lista con i files nuovi
Poi a questo punto lasio la palla ;-)))))


 wrote in message
ul1litga6l8oaf9cq...@4ax.com...

Puoi usare questo batch.
Prima crei la lista iniziale con il comando  dir/b|find "ext" >lista.bak
e succesivamente il batch la aggiorna da solo
@echo off
if not "%1"=="" goto ciclo
if not exist lista.bak for %%b in (echo goto:fine) do %%b lista.bak mancante
for %%a in (*.ext) do call %0 %%a
echo Aggiornamento lista
dir/b|find "ext" >lista.bak
goto fine
:ciclo
find/i "%1" lista.bak>nul
if errorlevel 1 echo Nuovo file: %1
:fine

:fine


 >:fine
Direi che è una buona aggiunta,
così si rende tutto automatizzato.
Ancora meglio sarebbe usare l' opzione   find/i ".txt"
...con le maiuscole non si sa mai....

...con le maiuscole non si sa mai....
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Giusto!
Appro' Il mio corbello come ti sembra?
