|
| Flamberge | Posté le 20/07/2005 @ 20:05 |
Petit astucien
19 Messages
| bonjour,
dans un Répertoire (REP1), j'ai environ 600 documents de référence pour des utilisateurs via une interface. Je retrouve les mêmes documents sur un autre serveur accessible par d'autres utilisateurs via une autre interface dans un Répertoire (REP2).
REP1 n'a pas d'arborescence
REP2 possède une arborescence (bien compliquer d'ailleur)
En faite tout les documents de REP2 ont été copié dans REP1.
PB :
Aujourd'hui REP1 devient le Répertoire de référence, les documents modifiés dans REP1 doivent être recopié dans REP2 (dans le bon Répertoire of course), il n'y a pas de nouveaux documents.[crazy]
En faite, il faudrai un script, qui recherche dans la sous arborensence de REP2 les documents de REP1 (même nom) et les écrases.
(ex: copy \\serv1\REP1\mydoc.doc \\serv2\REP2\SSREPX\mydoc.doc)
[choc] durdur
Je ne suis pas un pro en script et là ca me semble vraiment chaud
[confus]
Merci de votre aide
|
| |
| |
| Publicité |
|
|
| O_Fournier | Posté le 20/07/2005 à 23:15 |
Petit astucien
216 Messages
| B'Soir,
si j'ai bien compris (?) tu veux faire une mise à jour des fichiers de ...\REP1 vers \...\REP2.
Je vois simplement XCOPY /U (options en exécutant XCOPY /?) si tu peux lui indiquer des chemins fixes de REP1 et REP2.
Pour reprendre ton exemple ça donnerait quelquechose comme ça :[code]xcopy /u /k /y \\serv1\REP1\*.* \\serv2\REP2\SSREPX\*.*[/code]
Modifié par O_Fournier le 20/07/2005 23:17 |
| |
|
| koala01 | Posté le 22/07/2005 à 01:05 |
Astucien
4715 Messages
| Salut,
O_Fournier a écrit :
B'Soir,
si j'ai bien compris (?) tu veux faire une mise à jour des fichiers de ...\REP1 vers \...\REP2.
Je vois simplement XCOPY /U (options en exécutant XCOPY /?) si tu peux lui indiquer des chemins fixes de REP1 et REP2.
Pour reprendre ton exemple ça donnerait quelquechose comme ça :[code]xcopy /u /k /y \\serv1\REP1\*.* \\serv2\REP2\SSREPX\*.*[/code]
Je crains que ce que notre cher Flamberge souhaite soit en effet différent...
En effet, si j'ai bien compris, il tous les fichiers sont "en vrac" dans rep1 et se retrouvent dans différents sous dossiers dans rep2.
Il ne s'agit donc pas d'effectuer un simple écrasement de tous les fichiers de rep1 vers un sous dossier de rep2, mais bien de veiller à ce que les fichiers retournent à la bonne place...
Pour donner une réponse complete et précise, il faudrait savoir si les fichiers ont des noms qui permettent de déterminer le sous-dossier de destination. (on pourrait estimer par exemple que les fichier jpblabla.tru iraient dans le sous-dossier jp alors que les fichier sabblabla.tru iraient dans le sous-dossier sab) [question]
Si oui, il "suffit" spécifier dans un fichier batch de ne copier que les fichiers commencant par une série de lettres précises dans un dossier précis, ce qui donnerait, pour suivre mon exemple
xcopy /u /k /y \\serv1\REP1\jp*.* \\serv2\REP2\jp\jp*.*
xcopy /u /k /y \\serv1\REP1\sab*.* \\serv2\REP2\sab\sab*.*
...
Sinon, la mise en oeuvre sera quelque peu plus compliquée...
il s'agira en effet:
De lister les fichiers du serveur 2 Répertoire par Répertoire,
d'écraser fichier par fichier le résultat de la liste
ce genre de script batch est plus complexe à mettre au point [clindoeil] |
| |
|
| O_Fournier | Posté le 22/07/2005 à 09:25 |
Petit astucien
216 Messages
| B'Jour,
très juste koala01 [smile]
Dans ce 2ème cas, il a des tas de solutions + - lourdes (notamment en passant des variables % ... %).
En espérant que le demandeur se manifeste ... |
| |
|
| Flamberge | Posté le 25/07/2005 à 17:43 |
Petit astucien
19 Messages
| Bonjour,
Merci de votre aide.
Effectivement, koala01 tu as bien vu le Pb.
Et non biensur, iln'y a pas de correspondance entre le nom des fichiers et celui des Répertoires.
il faut en effet lister les fichiers du serveur 2 Répertoire par Répertoire et écraser fichier par fichier.
Encore merci
PS : Désolé de pas mettre manifesté avant, mais j'ai eu en plus des pb de serveur.
|
| |
|
| O_Fournier | Posté le 25/07/2005 à 22:23 |
Petit astucien
216 Messages
| B'Soir,
O.K. Si tu connais un peu le DOS tu peux dans un batch "scanner" tes Répertoires cibles avec [code]IF EXIST [nom de fichier] [commande][/code] et donc écraser les mêmes noms trouvés ou passer à un autre (boucle ou étiquette).
Excuses, pas le temps d'élaborer un début de code ... |
| |
|
| koala01 | Posté le 26/07/2005 à 14:43 |
Astucien
4715 Messages
| Je ne reviens plus sur la syntaxe exacte qui permet d'y arriver, cependant, voici en gros la logique qu'il faudrait arriver à suivre:
Récupérer les noms des dossiers existants dans une variable
pour chaque dossier
récupérer les noms de fichiers dans une deuxieme variable
pour chaque fichier
si fichier existe sur serveur 1
copier le fichier du serveur 1 dans le dossier (variable 1)
fin chauqe fichier
fin chaque dossier
Il me semble qu'en dos, la commande foreach variable_utilisable in liste_variable existe, mais je n'oserais plus le jurer... |
| |
|
| Flamberge | Posté le 01/08/2005 à 11:26 |
Petit astucien
19 Messages
| Ok
Merci de votre aide. |
| |
|
|
| Haut de la page |