| |||||
| Dernière réponse | |
|---|---|
| Sujet : [batch avancé] pour les forts | |
| altus | finalement mon script se résume à ça :
dir d:\films\_french_\*.nfo /s /b > nfo.txt for /F %%a in (nfo.txt) do copy %%a d:\temp\nfo cls Comme quoi c'est facile quand on sait :) |
| Aperçu |
|---|
| Vue Rapide de la discussion |
|---|
| altus | finalement mon script se résume à ça :
dir d:\films\_french_\*.nfo /s /b > nfo.txt for /F %%a in (nfo.txt) do copy %%a d:\temp\nfo cls Comme quoi c'est facile quand on sait :) |
| altus | merci t'es génial JPA :wahoo: j'aime bien tes aventures |
| JPA | j'ai trouvé une solution pour NT 2000, mais pas pour 9x :
après avoir créé toto.bat (dans cette méthode, je prèfère l'appeler toto.txt) tu lance la commande suivante : for /F "tokens=1,2*" %a in (toto.txt) do %a %c celà va exécuter le progr répertoire.bat avec le bon paramètre Il ne te reste plus qu'à ordonner tout celà et à mettre les commandes dans des batch. ATTENTION : dans les batch, il te faudra remplacer %a par %%a etc. A+ pour de nouvelles aventures |
| JPA | Non, c'est le contraire...
tu lance toto.bat et il va exécuter : Répertoire de p:\ Répertoire de p:\A récuperer\COPIE Répertoire de p:\_Données\dde67 comme répertoire est un.bat, il va exécuter répertoire... Zut, je viens de m'apercevoir d'un pb... Il ne va exécuter que la 1° ligne vu qu'il n'y a pas de call. Je recherche (pas tout de suite) et je reposte A+ |
| altus |
[edtdd]--Message édité par altus--[/edtdd] |
| JPA | Je vais te donner une piste. Je fais mes exemples avec des .xls (j'ai pas de nfo sur mon disque...)
N.B. Je suis sous 2000, le résultat peut changer sur Win 9x Si tu fais : p:\>dir *.xls /s|find "Répertoire" tu obtiens Répertoire de p:\ Répertoire de p:\A récuperer\COPIE Répertoire de p:\_Données\dde67 donc si tu fais : dir *.xls /s|find "Répertoire" >>toto.bat tu obtiens un fichier contenant les lignes d'instruction suivantes : Répertoire de p:\ Répertoire de p:\A récuperer\COPIE Répertoire de p:\_Données\dde67 il faut donc maintenant créer un fichier répertoire.bat qui va faire les opérations suivantes : - remarque préliminaire : dans la 1° ligne de mon exemple, les variables suivantes sont définies : %0 vaut Répertoire %1 vaut de %2 vaut p: dans la 2° ligne de mon exemple, les variables suivantes sont définies : %0 vaut Répertoire %1 vaut de %2 vaut p:\A %3 vaut récuperer\COPIE S'il n'y avait pas d'espace dans les noms de fichier ce serait plus simple... 1) Quand il n'y a pas d'espace : if exist %3 goto espace copy %2\*.xls c:\repertoire\ :espace set repert=%2 %3 if not exist %4 goto copie set repert=%repert% %4 if not exist %5 goto copie set repert=%repert% %5 etc etc dépend du nombre d'espace que tu peux avoir Mais celà ne marche pas si un nom de répertoire contient 2 espaces consécutifs :copie copy %repert%\*.xls c:\repertoire\ Teste et dis nous si celà marche P.S. : termine ton batch par : del toto.bat set repert= [edtdd]--Message édité par JPA--[/edtdd] |
| altus | en utilisant les pipes ?
dir *.nfo /s /b > copy ??? |
| altus |
|
| phraide | unix rulezz
find /src -type f -name \*.txt -exec cp {} /dest \; (tu peux trouver un portage de find pour dos/win...) <troll> aller vous coucher ! :D </troll> |
| altus |
|
| altus |
|
| bjone | sinon un truc du gout:
******************* :lp if "%1"=="" goto quit copy %1\*.nfo \nfo shift goto lp :quit *********************** avec dans ton cas: en étant dans d:\films\french\ yo.bat film1 film2 .............. |
| bjone | c'est mieux.
j'aurais une solution avec le 4dos..... |
| altus |
|
| Obscure | tu veux dire, il scan tous le dur a la recherche des .txt, et les copie dans un rép précis ? houla, c vrai que ca doit pas être tout simple ! enfin, je laisse al parole aux autres ! ;) |
| bjone |
|
| altus | j'aime pas quand les gens mettent ce titre, mais là ça m'a vraiment pas l'air facile à faire...
Alors : J'aimerais faire un script batch qui copierait des fichiers disons .txt depuis un peu partout vers un répertoire spécifié disons c:\textes Ca ne marche pas avec copy (logique) et xcopy non plus (il copie l'arborescence avec) Merci de votre aide ! |




