+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 2 su 2

File batch per effettuare backup incrementale ed eliminare i vecchi file

  1. #1
    maxs84 non è in linea Scribacchino
    Post
    524
    Like Inviati  
    0
    Like Ricevuti  
    0
    Ciao a tutti, vorrei scrivere un piccolo file batch che:

    1-mi effettui una copia di un file dalla rete al disco locale
    2-rinomini il file copiato in locale in: nomefile_AAAA.MM.GG_hh.min.sec
    3-conti i file di backup
    4-elimini il file di backup più vecchio quando ne esistono n copie

    Ho cercato un pò in rete e prendendo vari pezzi di codice avrei scritto questo, ma prima di provarlo volevo un vostro parere/aiuto!
    1/2 parte di codice che copia il file da c: a d: aggiungendo alla file la data e l'ora correnti:
    @echo off
    
    timeout /t 5
    
    for /f "delims=" %%a in ('wmic OS Get localdatetime  ^| find "."') do set dt=%%a
    set YYYY=%dt:~0,4%
    set MM=%dt:~4,2%
    set DD=%dt:~6,2%
    set HH=%dt:~8,2%
    set Min=%dt:~10,2%
    set Sec=%dt:~12,2%
    
    set stamp=%YYYY%-%MM%-%DD%_%HH%-%Min%-%Sec%
    
    copy "C:\Folder\File.txt" "D:\Backup\File - %stamp%.txt"
    
    3-parte che conta i file di backup ed esegue un'operazione se sono più di n:

    SETLOCAL 
    SETLOCAL ENABLEDELAYEDEXPANSION
    
    SET count=0 
    for %%o IN (D:\temp\*.*) DO ( 
          echo %%o 
          SET /A count=count + 1 
    )
    
    echo %count%
    
    IF "%count%"=="100" ECHO "operazione"
    
    ENDLOCAL ENABLEDELAYEDEXPANSION 
    ENDLOCAL
    
    4-parte che elimina il file più vecchio:
    for /f "delims=" %%a in ('dir "D:\Backup" /b /o-d /a-d') do (
    set "file=%%a"
    )
    del "%file%"
    
    Mi aiutate a mettere insieme questo codice ed adattarlo alle mie esigenze?

    Grazie.
    Ultima modifica di maxs84; 09-09-2016 19:36 

  2. #2
    maxs84 non è in linea Scribacchino
    Post
    524
    Like Inviati  
    0
    Like Ricevuti  
    0
    Ho risolto così:
    @echo off
    
    timeout /t 1
    
    for /f "delims=" %%a in ('wmic OS Get localdatetime  ^| find "."') do set dt=%%a
    set YYYY=%dt:~0,4%
    set MM=%dt:~4,2%
    set DD=%dt:~6,2%
    set HH=%dt:~8,2%
    set Min=%dt:~10,2%
    set Sec=%dt:~12,2%
    
    copy "F:\Prova.txt" "C:\Backup\Prova_%YYYY%-%MM%-%DD%_%HH%-%Min%-%Sec%.txt"
    
    pushd "C:\Backup"
    for /f "skip=5 tokens=*" %%i in ('dir /a:-d-s /b /o:-d') do del "%%i"
    popd
    
    Così facendo effettuo una copia del file f:\prova.txt da f: a c:\Backup aggiungendo data e ora alla fine del nome e tenendone solo le ultime 5 copie

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. Come effettuare copia backup automatica di excel
    Da pako96 nel forum Microsoft Excel
    Risposte: 4
    Ultimo Post: 08-11-2016, 14:16
  2. Effettuare un backup rinominando il db
    Da Falco69 nel forum Microsoft Access
    Risposte: 0
    Ultimo Post: 07-11-2014, 23:22
  3. Cancellare vecchi file di Backup
    Da pierovb nel forum Visual Basic 6
    Risposte: 0
    Ultimo Post: 11-08-2014, 12:42
  4. Backup Completo ed Incrementale Mysql
    Da Newton nel forum MySQL
    Risposte: 0
    Ultimo Post: 08-11-2011, 11:59
  5. eseguire una copia incrementale di un file
    Da gmax74 nel forum Visual Basic 6
    Risposte: 1
    Ultimo Post: 20-06-2007, 11:04