> Tous les forumsAutres langages

 Question pour les bons en .bat
Statut du sujet : NON RESOLU Imprimer
 fourmix
  Posté le 20/08/2004 @ 11:05  
 Petit astucien

34 Messages
Bonjour, je voudrais automatiser la sauvegarde de mon Répertoire "mes documents" sur un serveur. Je pense que faire un batch, lancé par le planificateur des tâches peut faire l'affaire. Je ne connais pas encore très bien les batch. J'ai un début de .bat : xcopy D:\Mes documents Sylvain\*.* \\nomserveur\sylvain\*.* /D/E/F/H/R/K/Y Ce que j'aimerais faire c'est au lieu d'écraser à chaque fois le Répertoire précédent, créer des Répertoires différents, en fonction de la date, du style \\nomserveur\sylvain\save_04_08_19 et \\nomserveur\sylvain\save_04_08_20. Mais pour ne pas encombrer le serveur, chaque jour impair s'écraserai. Je m'explique le save_04_08_21 écraserait le save_04_08_19. Idem pour les jours pairs. De cette façon j'ai tjs 2 Répertoires save, ce qui n'encombre pas le serveur, et 2 sauvegardes pour plus de sécurité. Donc comment avoir la date dans un variable et comment utiliser celle ci pour la création d'un nom de Répertoire? Merci de votre aide. Sylvain
 Afficher le profil de fourmixEnvoyer un message privé à fourmix
 
 
Publicité
 Arsenic  Posté le 20/08/2004 à 12:19  
  Astucien

5977 Messages
C'est infernal, le traitement de la variable de date sous Dos. Quelque tuyaux chez Laurence Soucy, mais bon, vraiment pas simple: [url]http://home7.inet.tele.dk/batfiles/[/url] C'est pourquoi je préfère me servir d'utilitaires Dos dédiés gérant la date, en particulier fdate. Un exemple sur ma page perso si ça t'inspire: [url]http://perso.wanadoo.fr/strychnine/dossave.html[/url] Ah, avant que j'oublie: mets "Mes documents.." entre guillemets ou avec un tilde en nom court Dos au 6ème caractère, sans quoi tu vas avoir des misères...
Afficher le profil de ArsenicEnvoyer un message privé à Arsenic
 Revenir en haut de la page
 Torrent  Posté le 20/08/2004 à 14:10  
Astucien

1076 Messages
Je crois que tu as un serveur Linux. Linux sait faire ca tout seul
Afficher le profil de Torrent Voir la configuration de TorrentEnvoyer un message privé à Torrent
  Revenir en haut de la page
 fourmix  Posté le 20/08/2004 à 15:01  
Petit astucien

34 Messages
Salut et merci. pour Torrent : Mon serveur est sous win malheureusement. pour Arsenic : J'ai fait ce script en test qui marche: (copier à 95% depuis un site, j'ai du changer qques paramètres car le prg utilisait la dtae en américain je pense) @echo off for /f "tokens=1-3 delims=/ " %%a in ('date /t') do ( set mm=%%b set dd=%%a set yyyy=%%c) xcopy D:\"Mes documents Sylvain\*.*" "C:\test\save_%yyyy%_%mm%_%dd%\*.*" /E/F/H/R/K Par contre quand j'utilise l'option /EXCLUDE ça ne marche pas. je fais xcopy D:\"Mes documents Sylvain\*.*" "C:\test\save_%yyyy%_%mm%_%dd%\*.*" /EXCLUDE:Logiciels /E/F/H/R/K avec Logiciels qui est un Répertoire (volumineux et pas vraiment important) Et autre pbl : quand je fais xcopy D:\"Mes documents Sylvain\*.*" "\\nomserver\sylvain\save_%yyyy%_%mm%_%dd%\*.*" /E/F/H/R/K, ça ne marche pas parce que je ne suis pas logguer sur le serveur. Existe-t-il qqch du style sylvain@nomserver comme pour un serveur FTP? Et comment faire attendre le prg, pour que je rentre le mdp et que le prg se relance pour faire la copie une fois le mdp validé? Merci bcp en attendant Sylvain
Afficher le profil de fourmixEnvoyer un message privé à fourmix
 Revenir en haut de la page
 Arsenic  Posté le 20/08/2004 à 15:14  
  Astucien

5977 Messages
Je ne sais par trop. Concernant la syntaxe "tokens", je l'ai aussi vue sur le web, mais bon, je ne la pratique pas. Sur le paramètre d'exclusion, je crois me souvenir, mais je ne suis pas sûr, que la syntaxe est "indirecte". /ECXLUDE:"chemin de toto"\toto.txt où c'est le fichier d'exclusion toto lui-même qui contient par exemple \rep, excluant tout fichier dont le chemin est sous le Répertoire \rep. Enfin, à propos du serveur, je ne sais pas comment est boutiqué le tien. En principe, un batch planifié te demandera, la première fois, ton identité et mdp de connexion à ce serveur, sous-entendant bien sûr qu'il existe préalablement sur le serveur des droits pour les paramètres en question. Par exemple, pour bidouiller de mes postes Win à mon serveur Linux, je n'ai aucun moyen de gérer de nouveaux mdp, qui sont gérés par un progiciel propriétaire, ce qui m'oblige à me logger avec l'identifiant et le mdp du serveur proprement dits, comme si je travaillais directement dessus.
Afficher le profil de ArsenicEnvoyer un message privé à Arsenic
 Revenir en haut de la page
 Arsenic  Posté le 20/08/2004 à 15:21  
  Astucien

5977 Messages
D'après Rob van der Woude: [url]http://www.robvanderwoude.com/index.html[/url]
/EXCLUDE:filename Excludes the files listed in the specified file from the copy operation. The exclusion file can have a list of exclusion patterns (one per line, no wild card characters are supported). If any exclusion pattern in the file matches any part of the path of a subject file, that file is not copied. Examples Copy only files older than Christmas day 2000: FOR /F "tokens=1* delims=:" %%A IN ('XCOPY *.* D:\Mydir /D:12-25-2000 /H /I /L /R ^| FIND ":"') DO (>>%TEMP%.\exclude.lst ECHO.%%B) XCOPY *.* D:\Mydir /EXCLUDE:%TEMP%.\exclude.lst /H /I /R Delete files created or modified after Christmas 2000: FOR /F "tokens=1* delims=:" %%A IN ('XCOPY *.* D:\Emptydir /D:12-26-2000 /H /I /L /R ^| FIND ":"') DO DEL /F %%B
Afficher le profil de ArsenicEnvoyer un message privé à Arsenic
 Revenir en haut de la page
 fourmix  Posté le 20/08/2004 à 16:35  
Petit astucien

34 Messages
Alors les nouvelles : J'ai résolu mes 2 pbls, a savoir l'exclusion et l'accès au serveur Tu as raison l'option EXCLUDE renvoie à un fichier comportant des lignes. J'ai donc créer un fichier exclusion.txt qui contient les noms des Répertoires à ne pas sauver (un par ligne) (Attention à mettre ce fichier au même endroit quer le batch) Pour l'accès au serveur, il faut que le login et les mdp utilisé sur les 2 machines soientr le même et ça marche (ou alors se logguer une fois sur le serveur via "les favoris réseau" par exemple) Bon pour le moment je n'arive à faire marche cette tâche que sosu c: Et pas D/, petit pbl à résoudre. @echo off for /f "tokens=1-3 delims=/ " %%a in ('date /t') do ( set mm=%%b set dd=%%a set yyyy=%%c) echo Ceci est la sauvegarde automatisée de vos données personnelles sur le serveur. echo Nous sommes le %yyyy% %mm% %dd%. xcopy D:\"Mes documents Sylvain\*.*" "\\nomserveur\Equipe technique\Sylvain\save_%yyyy%_%mm%_%dd%\*.*" /EXCLUDE:exclusion.txt/E/F/H/R/K Je vais réfléchir à l'éventuelle utilisation de l'option /D et lancer via le planificateur des tâches une sauvegarde toutes les heures (comme ça tous mes fichiers seront sauvés le matin et dans la journés, seuls les fichiers modifiés seront écrasés sur le serveur) [cool]Le + gros du prg est fait![bigsmile] Maintenant, comment analyser les noms des Répertoires existant sur le serveur et ecraser le save_2004_08_19 par le save_2004_08_21 (par exemple) et le 18 par le 20??? bon w-e
Afficher le profil de fourmixEnvoyer un message privé à fourmix
 Revenir en haut de la page
 Arsenic  Posté le 20/08/2004 à 16:43  
  Astucien

5977 Messages
Maintenant, comment analyser les noms des Répertoires existant sur le serveur et ecraser le save_2004_08_19 par le save_2004_08_21 (par exemple) et le 18 par le 20??? bon w-e
Ben moi, je procède comme je te l'ai dit avec fdate, il suffit de faire une opération dans ta variable jour, appelons-là "%JOURJ%" Il suffit de calculer à partir de %JOURJ% la variable correspondant à, disons 2 jours avant, appelons-la %JOURJ2%. Maintenant, avant mon batch, je fais une conditionnelle: IF EXIST "chemin"%JOURJ2%.TOTO DEL (ce fichier)
Afficher le profil de ArsenicEnvoyer un message privé à Arsenic
 Revenir en haut de la page
 RPG3000  Posté le 29/08/2004 à 19:58  
Petit astucien

196 Messages
Salut! Pour te siiiiiiiiiiiiiiiiimplifier la vie, va sur astase.com, télécharge PowerBatch. Il te fourni des outils pour générer des codes et il possède un système de teste intégré sans bezoin ke ton batch soit enregistré. Il a un assistant XCOPY avec toute les options. Si t'es pas fort, y'a un tutorial, avec PowerBatch. Un tutos facil à comprendre. J'ai appris le batch avec, en fait c assez facil. @++
Afficher le profil de RPG3000Envoyer un message privé à RPG3000
 Revenir en haut de la page
 Arsenic  Posté le 30/08/2004 à 13:31  
  Astucien

5977 Messages
Ah non, ça, c'est vraiment "une réponse à bon marché", histoire de dire quelque chose. Je veux bien croire que Power batch facilite l'écriture de fichiers des commandes via un assistant, et même qu'il sait compiler les batch en com pour ceux que ça intéresse. Mais je ne vois pas par quelle magie il suffirait à gérer, du seul fait de son interface ajoutée, ce que Dos fait très mal, savoir la gestion de la variable de date.
Afficher le profil de ArsenicEnvoyer un message privé à Arsenic
 Revenir en haut de la page
Haut de la page 
Inscrivez-vous !
- Posez vos questions

- Résolvez vos problèmes

- Aidez les autres

- Participez et créez vos discussions

- Dialoguez en privé avec d'autres membres

- Suivez vos sujets préférés

- Affichez les signatures des membres

TOUT EST GRATUIT !

Je crée mon compte




Vous avez besoin d'aide ?
Des centaines d'experts sont à votre disposition sur les forums PC Astuces pour vous aider gratuitement, 24h/24, 7j/7.

Les derniers sujets résolus !
 

 > Tous les forumsAutres langages

 
Forum PC Astuces© 1997-2008 WebastucesAller en haut de la page