Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2707 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [Batch] Erreur avec la commande MOVE, RESOLU

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Batch] Erreur avec la commande MOVE, RESOLU

n°2151432
yahiko95
Posté le 29-07-2012 à 10:30:52  profilanswer
 

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
mood
Publicité
Posté le 29-07-2012 à 10:30:52  profilanswer
 

n°2151435
gilou
Modérateur
Modzilla
Posté le 29-07-2012 à 13:12:30  profilanswer
 

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é!  --
n°2151437
yahiko95
Posté le 29-07-2012 à 13:58:44  profilanswer
 

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 :)

n°2151449
jacpeus
Posté le 29-07-2012 à 18:33:05  profilanswer
 

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. )

n°2151450
gilou
Modérateur
Modzilla
Posté le 29-07-2012 à 18:34:32  profilanswer
 

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é!  --
n°2151452
jacpeus
Posté le 29-07-2012 à 18:42:41  profilanswer
 

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

n°2151457
yahiko95
Posté le 29-07-2012 à 19:10:22  profilanswer
 

Merci ça fonctionne, je vous aime  :love:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [Batch] Erreur avec la commande MOVE, RESOLU

 

Sujets relatifs
Besoin d'aide pour trouver un erreur[BATCH] Redemarrage par GPO Ordinateur
Pbl batch[BATCH] commande ok si tapée dans cmd, mais nok dans un .bat
Beaucoup d'erreur 404[SQL]Tache de maintenance / commande
[RESOLU] Erreur fonction de rappel qui ne s'execute pasCommande shell_exec via php
[BATCH] probleme dans la redaction de mon batch 
Plus de sujets relatifs à : [Batch] Erreur avec la commande MOVE, RESOLU


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR