[Batch] Erreur avec la commande MOVE, RESOLU

Erreur avec la commande MOVE, RESOLU [Batch] - Shell/Batch - Programmation

Marsh Posté le 29-07-2012 à 10:30:52    

Bonjour à tous et toutes,
 
Le batch que je suis en train de pondre à pour but de trier des fichiers suivant leurs extensions, et ensuite de les redirigés dans leurs bon dossiers
( si comme moi vous avec beaucoup de fichiers qui trainent sur votre bureau/dossier de dl, vous comprenez l'utilité  :D )
 

Code :
  1. rem @echo off
  2. set desktop=c:\users\nounours\desktop
  3. set rep=c:\users\nounours\desktop\scripts
  4. set wkg=%rep%\wkg
  5. set save=%rep%\save
  6. set log=%rep%\log
  7. set png=png
  8. set avi=avi
  9. set mkv=mkv
  10. set mp3=mp3
  11. set mov=mov
  12. set pdf=pdf
  13. set doc=doc
  14. set xlsx=xlsx
  15. set txt=txt
  16. del /q %wkg%\txtwkg.txt
  17. del /q %wkg%\pdfwkg.txt
  18. del /q %wkg%\docwkg.txt
  19. del /q %wkg%\mp3wkg.txt
  20. del /q %wkg%\movwkg.txt
  21. del /q %wkg%\mkvwkg.txt
  22. del /q %wkg%\xlsxwkg.txt
  23. del /q %wkg%\txtwkg.txt
  24. del /q %wkg%\pngwkg.txt
  25. del /q %wkg%\aviwkg.txt
  26. del /q %wkg%\dir.txt
  27. cd ../..
  28. dir /b>c:\users\nounours\desktop\scripts\wkg\dir.txt
  29. pause
  30. for /f %%f in ("%wkg%\dir.txt" ) do (
  31. findstr "png" %wkg%\dir.txt > %wkg%\pngwkg.txt
  32. findstr "doc" %wkg%\dir.txt > %wkg%\docwkg.txt
  33. findstr "avi" %wkg%\dir.txt > %wkg%\aviwkg.txt
  34. findstr "mp3" %wkg%\dir.txt > %wkg%\mp3wkg.txt
  35. findstr "MOV" %wkg%\dir.txt > %wkg%\movwkg.txt
  36. findstr "mkv" %wkg%\dir.txt > %wkg%\mkvwkg.txt
  37. findstr "xlsx" %wkg%\dir.txt > %wkg%\xlsxwkg.txt
  38. findstr "txt" %wkg%\dir.txt > %wkg%\txtwkg.txt
  39. findstr "png" %wkg%\dir.txt > %wkg%\pngwkg.txt
  40. findstr "pdf" %wkg%\dir.txt > %wkg%\pdfwkg.txt
  41. )
  42. pause
  43. for /f %%f in ("%wkg%\pngwkg.txt" ) do (
  44. move /y %%f c:\users\nounours\desktop\images
  45. )


 
Voici mon code pour le moment.
Mon soucis est que quand il arrive au MOVE, il me copie mon fichier pngwkg.txt dans le dossier images au lieu de parcourir le-dit fichier pour y trouver les noms de fichiers à copier.
Mon erreur est surement bête mais je n'arrive pas à la trouvée  :cry:  
 
Je vous remercie par avance, et vous souhaite un bon weekend  :hello:


Message édité par yahiko95 le 29-07-2012 à 19:10:52
Reply

Marsh Posté le 29-07-2012 à 10:30:52   

Reply

Marsh Posté le 29-07-2012 à 13:12:30    

Essayes avec ceci:

Code :
  1. for /f "tokens=*" %%f in ("%wkg%\pngwkg.txt" ) do (
  2. move /y %%f c:\users\nounours\desktop\images
  3. )


A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 29-07-2012 à 13:58:44    

Il me copie toujours le fichier pngwkg.txt au lieu de le parcourir y d'y prendre le nom des fichiers  :cry:  
Merci d'avoir essayer tout de même :)

Reply

Marsh Posté le 29-07-2012 à 18:33:05    

Et avec ça :

Code :
  1. for /f "tokens=*" %%f in ('type %wkg%\pngwkg.txt') do (
  2. move /y %%f c:\users\nounours\desktop\images
  3. )

Reply

Marsh Posté le 29-07-2012 à 18:34:32    

En me relisant, la cause du pb est claire: c'est les "" qui font que c'est pris comme une ligne de texte et non pas un nom de fichier:

Citation :

FOR /F
 
Loop command: against a set of files - conditionally perform a command against each item.
 
Syntax
        FOR /F ["options"] %%parameter IN (filenameset) DO command  
       
        FOR /F ["options"] %%parameter IN ("Text string to process" ) DO command


 
Donc il faut que tu fasses:

Code :
  1. for /f %%f in (%wkg%\pngwkg.txt) do (
  2. move /y %%f c:\users\nounours\desktop\images
  3. )

et si ça colle pas, tu essayes avec en plus le paramètre "tokens=*" de mon post précédent
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 29-07-2012 à 18:42:41    

effectivement, ça fonctionne également sans le ('type xxx')

Reply

Marsh Posté le 29-07-2012 à 19:10:22    

Merci ça fonctionne, je vous aime  :love:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed