Flie .Bat per backup

di il
5 risposte

Flie .Bat per backup

Buongiorno,
con un file batch attivato all' interno di un programma VB6 vorrei creare un backup del database.
Vorrei che a seconda del giorno della settimana il file .mdb venisse copiato all'interno della cartella
nominata con il corrispettivo giorno.

il seguente file batch mi consente la copia

@echo off

    for /F %%A in ('WMIC Path Win32_LocalTime Get DayOfWeek /format:list ^| findstr "=" ') DO (set %%A )
    echo > C:\BCC\Backup\RegistroES_%DayOfWeek:~0,1%.mdb
         xcopy C:\BCC\RegistroES.mdb C:\BCC\Backup\RegistroES_%DayOfWeek:~0,1%.mdb /V
quindi ho provato ad inserire un IF

@echo off

    for /F %%A in ('WMIC Path Win32_LocalTime Get DayOfWeek /format:list ^| findstr "=" ') DO (set %%A )

   [b]if[/b] %DayOfWeek:~0,1%="6"
      echo > C:\BCC\Backup\Sab\RegistroES_%DayOfWeek:~0,1%.mdb
         xcopy C:\BCC\RegistroES.mdb C:\BCC\Backup\Sab\RegistroES_%DayOfWeek:~0,1%.mdb /V
    [b]End if[/b]

ma non copia nulla.
Qualche suggerimento?
Grazie

5 Risposte

  • Re: Flie .Bat per backup

    Ma perché un bat?

    Perché non usi le istruzioni del vb6 per la copia?
  • Re: Flie .Bat per backup

    In effetti uso la seguente routine
    
    
    Sub BackupGiornaliero()
    
    Giorno = Weekday(The_Date.Text)
    
    Select Case Giorno
        Case Is = 1
          FileCopy App.path & "\RegistroES.mdb", App.path & "\Backup\Dom\RegistroES.mdb"
        Case Is = 2
          FileCopy App.path & "\RegistroES.mdb", App.path & "\Backup\Lun\RegistroES.mdb"
        Case Is = 3
          FileCopy App.path & "\RegistroES.mdb", App.path & "\Backup\Mar\RegistroES.mdb"
        Case Is = 4
          FileCopy App.path & "\RegistroES.mdb", App.path & "\Backup\Mer\RegistroES.mdb"
        Case Is = 5
          FileCopy App.path & "\RegistroES.mdb", App.path & "\Backup\Gio\RegistroES.mdb"
        Case Is = 6
          FileCopy App.path & "\RegistroES.mdb", App.path & "\Backup\Ven\RegistroES.mdb"
        Case Is = 7
          FileCopy App.path & "\RegistroES.mdb", App.path & "\Backup\Sab\RegistroES.mdb"
            End Select
    
    End Sub
    
    
    
    Ho visto in rete un esempio di file . bat e credevo una soluzione migliore.
  • Re: Flie .Bat per backup

    Tutte quelle ripetizioni nel codice non servono ... e neanche il Select Case ... (e perché il bat dovrebbe essere migliore? Anzi ...)
    
    Sub BackupGiornaliero()
        Dim Sett As Variant
        Dim Gior As Integer
        Dim FNam As String
        
        Sett = Array("Lun", "Mar", "Mer", "Gio", "Ven", "Sab", "Dom")
        Gior = Weekday(CDate(The_Date.Text), vbMonday)
        FNam = "\RegistroES.mdb"
        
        FileCopy App.Path & FNam, App.Path & "\Backup\" & Sett(Gior - 1) & FNam
    End Sub
    
    Potresti usare anche la funzione weekdayname ma così va bene lo stesso
  • Re: Flie .Bat per backup

    Grazie,
    Il codice compatto è sempre da preferire.
  • Re: Flie .Bat per backup

    Dovresti prevedere anche una gestione errori ... ma lo farai tu
Devi accedere o registrarti per scrivere nel forum
5 risposte