Création d'un .bat pour sauvegarde auto

Résolu
Nunours -  
 mdu -
Bonjour,
Je suis apprenti en informatique et j'essaie dans le cadre de ma formation d'apprendre à utiliser rocopy.
Je voudrais créer un script (.bat) qui me permettrait de le lancer et de sauvegarder (pour un test) le dossier mes documents.
De plus je dois pouvoir déplacer ce script avec l'exécutable pour sauvegarder toujours le même dossier sur n'importe quel pc sur lequel il serait présent.

J'ai deux problème. Le premier est que sur Xp le dossier mes documents comporte un espace tout comme documents and settings, du coup les script refuse de se lancer à cause de ceux-ci, dois je les supprimer ou les remplacer par un autre symbole, du genre %20 ???

Ensuite je voulais démarrer mon script par la commande AT, j'ai donc essayer de lancer avec cette commande un executable dont le chemin et le nom ne comportent pas d'espace:
AT 10:45 /EVERY:v "C:\dossiertest\test.exe"

Hors à l'heure prévu le script de me démarre pas l'exécutable, ai-je fais une faute dans ma commande?

Merci d'avance
Configuration: Windows XP
Firefox 3.0.10

5 réponses

  1. mdu
     
    je sais pas si c'est toujours d'actualité pour robocopy mais si cela peut te servir:

    nom du fichier : robocopy.bat

    voici mon script robocopy :
    __________________________________________________________________________________________

    SET LOG="D:\Test\log\log.txt"
    SET DEST="d:\Test\destination"
    SET SOURCE="d:\Test\source"

    c:

    robocopy %SOURCE% %DEST% /MIR /LOG:%LOG% /R:1 /W:2
    cscript "D:\robocopy\robocopy_checker.vbs"

    __________________________________________________________________________________________
    pour info le vbs me permet d'envoyer le rapport de sauvegarde par mail

    Nom du fichier vbs : robocopy_checker.vbs (tu peux le renommer mais oublie pas de le faire aussi dans le .bat ou est renseigner le chemin du vbs)
    txtSMTPServer : tu dois indiquer l'adresse de ton serveur smtp : par exemple : smtp.orange.fr
    txtTo: adresse mail du destinataire
    txtFrom : adresse mail de l'expéditeur

    voici le vbs :
    __________________________________________________________________________________________

    'robocopy_checker.vbs

    Dim txtSMTPServer, txtTo, txtFrom, txtSubject, txtBody
    Dim txtLog, strValue, iTotal, iPos, strText

    txtSMTPServer = " " 'SMTP server
    txtTo = " " 'To Address
    txtFrom = " " 'From Address
    txtSubject = "Rapport de sauvegarde test" 'Subjet du mail
    txtLog = "D:\Test\log\log.txt" 'chemin du fichier de log de robocopy

    'Récupérer le contenu du fichier
    FileContents = GetFile(txtLog)

    '-- Cycle thru the log file to find errors --

    strText = FileContents
    iPos = 1
    Do While iPos <= Len(strText)
    If InStr(iPos, UCase(strText), "0X00000") > 0 Then
    iTotal = iTotal + 1
    iPos = InStr(iPos, UCase(strText), "0X00000")_
    + Len("0X00000")
    Else
    Exit Do
    End If
    Loop

    '-- --

    If iTotal > 0 Then
    strErrors = 1
    Else
    strErrors = 0
    End If

    'Sortie significative en cas d'erreur de copie
    If strErrors = 1 Then
    txtBody = "La sauvegarde a détecté " & iTotal & " fichiers " &_
    "qui n'ont pas pu être sauvegardés." &_
    "Voir le fichier log ci-joint en pièce jointe pour vérifier les fichiers qui n'ont pas pu être copiés." & vbcrlf & "" &_
    "Il est possible que ces fichiers soient liés à une application restée en cours d'exécution." & vbcrlf & "" &_
    "Si vous avez des questions ou des problèmes liés à la sauvegarde n'hésitez pas à nous contacter"
    Else
    txtBody = "La sauvegarde a réussie. Pas d'erreur trouvée. " &_
    "Si vous avez des questions ou des problèmes liés à la sauvegarde n'hésitez pas à nous contacter"
    End If

    '-- Envoie d'Email --
    Const cdoSendUsingMethod = _
    "http://schemas.microsoft.com/cdo/configuration/sendusing", _
    cdoSendUsingPort = 2, _
    cdoSMTPServer = _
    "http://schemas.microsoft.com/cdo/configuration/smtpserver"
    '// Créer les connexions CDO.
    Dim iMsg, iConf, Flds
    Set iMsg = CreateObject("CDO.Message")
    Set iConf = CreateObject("CDO.Configuration")
    Set Flds = iConf.Fields
    With Flds
    .Item(cdoSendUsingMethod) = cdoSendUsingPort
    .Item(cdoSMTPServer) = txtSMTPServer
    .Update
    End With
    '// Mettre les propriétés du message.
    With iMsg
    Set .Configuration = iConf
    .To = txtTo
    .From = txtFrom
    .Subject = txtSubject
    .TextBody = txtBody
    End With
    if txtlog <> "" then iMsg.AddAttachment txtLog
    '// Send the message.
    iMsg.Send ' send the message.

    '-- Fonction de lecture du fichier --
    function GetFile(txtLog)
    If txtLog<>"" Then
    Dim FS, FileStream
    Set FS = CreateObject("Scripting.FileSystemObject")
    on error resume Next
    Set FileStream = FS.OpenTextFile(txtLog)
    GetFile = FileStream.ReadAll
    End If
    End Function
    __________________________________________________________________________________________

    Si tu as besoin d'info n'hésite pas ;)
    3
  2. wadcox Messages postés 1022 Statut Membre 222
     
    bonjour,

    Alors, moi je sauvegarde pleins de dossier sur 2003 server grâce à l'outil NTBACKUP.EXE

    Va dans Démarrer/executer puis tape NTBACKUP.EXE.

    ensuite planifier les travaux

    et donne lui les dossiers à sauvegarder (pour toi c est Mes documents) donne lui l heure a laquelle elle doit commencer, si c est une sauvegarde normale, incrémentielle, différencielle (pour plus d infos sur les types de sauvegarde, tu peuc voir ca ici : https://fr.wikipedia.org/wiki/Sauvegarde#Sauvegarde_diff.C3.A9rentielle

    Et ca se lancera tres bien chaque jour.
    tu pourras voir le rapport en faisant Outils Option dans ntbackup.

    pour les dossiers avec espace ex : document and setting : docume~1

    sinon, un script sympa j'utilise un fichier backup.cmd et le logiciel Windows SCHEDULER:

    dans le .CMD, rentre ca :

    ECHO " LANCEMENT DU LOGICIEL DE SAUVEGARDE
    ECHO.
    ECHO.
    START /WAIT NTBACKUP BACKUP C:\docume~1\nomdesession\etc... /F "g:\sauve.bkf" /J "SAUVEGARDE numours" /D "SAUVEGARDE" /V:no /UM

    g: étant la lettre du lecteur de disque dur externe que j'utilise.

    Voici maintenant le tuto pour le logiciel scheduler :

    TUTO SAUVEGARDE WINDOWS SCHEDULER PAR WadCox

    Etape 1 :

    Formater DD externe en NTFS
    Ecrire sur les disques chaque jour de la semaine.

    Installer Windows Scheduler
    Modifier le Backup.CMD selon ce que tu veux sauvegarder
    Mettre le Bachup.CMD dans le C:

    "vérifier que le disque dur externe possède la meme lettre de lecteur que celle donnée dans le Backup.cmd"

    Clic droit pres de l'heure sur Scheduler et prendre : Schedule Task

    Subjet : Titre (ex:sauvegarde planifiée)
    Programm : ntbackup.cmd

    Onglet Schedule :

    Décoche "Do Not Schedule"

    Choisir : Every Week, de monday à Friday, à 23h00 si la société est ouverte du lundi au vendredi.

    Mettre le ntbachup.exe dans system32 si tu ne disposes pas d'un WIN XP PRO, sinon il y est d'origine.

    Sauvegarder and EXIT.

    Créer fichier planif.log dans C:

    Clic droit sur le logo scheduler pres de l'heure et choisir "VIEW ALL TASKS"
    Choisir "PREFERENCE", cocher LOGFILE et mettre C:\planif.log

    Mettre sur le bureau un raccourcis de ntbackup.exe pour vérifier les sauvegarde.
    double clic dessus et outils puis options, choisis la date du jour et double clic, et tu ara les explications sur la sauvegarde.
    3
  3. Nunours Messages postés 477 Statut Membre 21
     
    Euh... ouais sauf que les seules contraintes que j'ai c'est que je dois utiliser (impérativement) robocopy sous forme de script et je dois pouvoir déplacer ce script avec l'exécutable pour sauvegarder sur n'importe quel pc sur lequel il serait présent.
    3
  4. wadcox Messages postés 1022 Statut Membre 222
     
    ok alors le script est bon mais le programme je ne sais pas du tout
    3
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Nunours Messages postés 477 Statut Membre 21
     
    Jle remet comme je vois plus les message précédent au tiens:

    at 16:21 /interactive "@echo off
    robocopy "%USERPROFILE%\My Documents" U:\test /E
    pause"

    Voilà, donc quand je double clique sur mon script la sauvegarde se fait nickel. mais le lancement auto ne se fait pas, alors je me demandais 2 truc, 1: ne considère t'il pas que la sauvegarde est demandé pour demain???
    Et si oui, comment la faire aujourd'hui?

    (je ne re pas avant lundi en principe donc bon week-end^^)
    3