Création d'un .bat pour sauvegarde auto

Résolu/Fermé
Nunours - 5 juin 2009 à 11:17
 mdu - 10 nov. 2009 à 15:22
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
A voir également:

5 réponses

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
wadcox Messages postés 998 Date d'inscription dimanche 16 juillet 2006 Statut Membre Dernière intervention 22 septembre 2011 222
5 juin 2009 à 11:32
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
Nunours Messages postés 405 Date d'inscription vendredi 5 juin 2009 Statut Membre Dernière intervention 12 décembre 2011 20
5 juin 2009 à 16:25
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
wadcox Messages postés 998 Date d'inscription dimanche 16 juillet 2006 Statut Membre Dernière intervention 22 septembre 2011 222
5 juin 2009 à 16:47
ok alors le script est bon mais le programme je ne sais pas du tout
3

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Nunours Messages postés 405 Date d'inscription vendredi 5 juin 2009 Statut Membre Dernière intervention 12 décembre 2011 20
5 juin 2009 à 16:57
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