Fend Posté(e) le 9 novembre 2004 Partager Posté(e) le 9 novembre 2004 Bonjour tout le monde, J'ai un petit programme à réaliser pour le boulot, c'est assez urgent puisqu'il le faudrait fonctionnel demain matin ! Il s'agit de trouver tout les fichiers *.scp des répertoires ...\screening\ et ...\D-2\ d'une arborescence à trois niveaux. Puis de les déplacer dans un répertoire "\screeningD-2\" à la racine de l'arborescence en question ("C:\progtri\OP476E~1\"). J'ai cherché les lignes de commandes que je pourrais réunir dans un script : J'arrive à réunir dans un fichier texte tout les répertoires à déplacer grace à cette commande : DIR /A:d /O:G /S /B screening D-2 > rep.txt J'obtiend alors un résultat ressemblant à celui-ci listant tous les répertoires Screening et D-2 présent dans les nobreux sous-répertoires de l'arborescence : C:\progtri\OP476E~1\BULMA\D-2C:\progtri\OP476E~1\BULMA\SCREENING C:\progtri\OP476E~1\GERXA\D-2 C:\progtri\OP476E~1\GERXA\SCREENING C:\progtri\OP476E~1\GIOMA\D-2 C:\progtri\OP476E~1\GIOMA\SCREENING C:\progtri\OP476E~1\LAQME\D-2 C:\progtri\OP476E~1\LAQME\SCREENING C:\progtri\OP476E~1\RICCL\D-2 C:\progtri\OP476E~1\RICCL\SCREENING Je n'arrive pas à aller plus loin avec les lignes de commande. Je me demandais si quelqu'un pouvais m'aider à réaliser ce script ou si vous aviez une suggestion de langage de programmation (genre C ou C#) dans lequel je pourrais programmer cela. Je précise que la dernière fois que j'ai touché à un langage de programmation c'était un petit programme de merde en C il y a plus de 4 ans (en TP d'IUT)... A part cela j'ai quand même de solides bases en algorithmie. D'avance merci pour votre précieuse aide ! Lien vers le commentaire Partager sur d’autres sites More sharing options...
flopasques Posté(e) le 9 novembre 2004 Partager Posté(e) le 9 novembre 2004 Salut ! Si cela t'intéresse, je peux t'indiquer comme faire avec Visual Basic 6, 7 ou 8, ou même en VBA (fourni avec Ms Office). A bientôt, Florian Lien vers le commentaire Partager sur d’autres sites More sharing options...
Fend Posté(e) le 9 novembre 2004 Auteur Partager Posté(e) le 9 novembre 2004 Bien sûr que ça m'intéresse !! Tout les moyens sont bons, j'ai la pression du patron sur les épaules Faudra juste que je trouve de quoi faire ce programme... Si VBA est fournit avec Office ça devrait être bon. D'avance merci Lien vers le commentaire Partager sur d’autres sites More sharing options...
flopasques Posté(e) le 9 novembre 2004 Partager Posté(e) le 9 novembre 2004 Je vais rentrer chez moi ds quelques minutes (je suis ici à l'université) ! J'irai voir si je peux trouver les bonnes commandes. @++, Florian Lien vers le commentaire Partager sur d’autres sites More sharing options...
Fend Posté(e) le 10 novembre 2004 Auteur Partager Posté(e) le 10 novembre 2004 J'oubliais de préciser un truc : Ce n'est qu'un exemple simplifié, dans la réalité cette arborescence compte quelques centaines de répertoires, et tout ça change progressivement toute la semaine... D'où la nécessité de faire un programme qui va chercher lui même ce qu'il y a à déplacer et qui se charge de tout... Histoire de le lancer toutes les semaines afin de faire le tri régulièrement ! Je dis ça parce que la plupart de mes amis à qui j'ai demandé de l'aide me sortent : ben fait le manuellement c'est plus simple Vous vous doutez bien que si c'était une arborescence fixe, ça ne me poserait pas de problèmes ! Lien vers le commentaire Partager sur d’autres sites More sharing options...
an0nyme Posté(e) le 13 novembre 2004 Partager Posté(e) le 13 novembre 2004 Pour ça je te conseille le Perl. Je vais essayer de programmer ça. Mais j'ai un petit probleme et je sais pas ce que c'est ( je sais juste que c'est simple) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Fend Posté(e) le 15 novembre 2004 Auteur Partager Posté(e) le 15 novembre 2004 Ca y est, j'y suis arrivé : @echo OFF Set MyDir=C:\progtri\TEMP set ROOT=c:\progtri\ Set Rep_File=%MyDir%\Repertoire.txt Set Fichier_File=%MyDir%\Fichier.txt Del %Rep_File% cd %ROOT%\%1 For /F "Tokens=*" %%I in ('Dir /A:d /O:G /S /B screening D-2') Do Echo "%%I\*.scp" >>%Rep_File% REM Fichier repertoire.txt mis a jour. For /F "Tokens=*" %%I in (%Rep_File%) Do MOVE %%I "%ROOT%\%1\%1 END\screening D-2\" REM Fichiers Screening et D-2 deplaces ! For /F "Tokens=*" %%I in ('Dir /A:d /O:G /S /B screening D-2') Do RD "%%I" REM Repertoires Screening et D-2 supprimes ! exit Ca marche bien. Noté que se script se lance avec un paramètre (%1) qui permet de spécifier la racine d'une des nombreuses arborescences de ce type. Il me reste juste à gérer la gestion des erreurs et les messages d'erreurs (traduits et interprétés) destinés à l'utilisateur. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Fend Posté(e) le 25 novembre 2004 Auteur Partager Posté(e) le 25 novembre 2004 Chose promise, chose due. Voici le programme terminé avec prise en charge des erreurs et du réseau pour l'exécuter des postes clients. + correction de petits bugs imprévus... @echo OFF net use t: \\serveur\cardionics Set MyDir=t:\TEMP set ROOT=t: Set Rep_File=%MyDir%\Repertoire.dat If "%1"=="" ( GOTO :param ) ELSE ( If not exist %ROOT%\%1\nul GOTO :etude ) If exist %Rep_File% Del %Rep_File% If not exist "%ROOT%\%1\%1 END\screening D-2\nul" MD "%ROOT%\%1\%1 END\screening D-2\" cd %ROOT%\%1 Dir /A:d /O:G /S /B screening D-2 If %errorlevel% == 1 ( cls echo. echo. echo. Aucun répertoire Screening ou D-2 trouvé. echo. echo. Soit les Screening et D-2 ont déjà été déplacés, echo. soit les ECG n'ont pas encore été triés. echo. Dans ce cas, exécutez le programme triscp.exe. echo. echo. pause exit ) For /F "Tokens=*" %%I in ('Dir /A:d /O:G /S /B screening D-2') Do Echo "%%I\*.scp" >>%Rep_File% Echo. Echo.Liste des répertoires "Screening" et "D-2" mise à jour. Echo. For /F "Tokens=*" %%I in (%Rep_File%) Do MOVE %%I "%ROOT%\%1\%1 END\screening D-2\" Echo. Echo.Fichiers Screening et D-2 deplacés. Echo. For /F "Tokens=*" %%I in ('Dir /A:d /O:G /S /B screening D-2') Do RD "%%I" Echo. Echo.Repertoires Screening et D-2 supprimés. Echo. :end cls echo. echo. echo. Le programme s'est déroulé correctement. echo. echo. Tout les ECG Screening et D-2 ont été déplacé dans : echo. %ROOT%\%1\%1 END\screening D-2\ echo. echo. pause exit :param cls echo. echo. echo. Paramètre manquant ou incorrect ! echo. Veuillez spécifier le nom de l'étude en paramètre. echo. echo. pause exit :etude cls echo. echo. echo. L'étude %1 n'existe pas. echo. echo. pause exit Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.