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

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Récupérer un type de fichier sur lecteurs voulus

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Récupérer un type de fichier sur lecteurs voulus

n°2020453
komar_666
Posté le 01-09-2010 à 16:45:37  profilanswer
 

Bonjour, après plusieurs heures sur un tit prog pour récupérer un type de fichier choisi sur tous les lecteurs en d'un disk défini dans les variables. j'en suis la.
Tout fonctionne.  
Voyez vous par contre des choses à améliorer? Simplifier? faire autrement?
notamment sur le test des lecteurs....(peut on incrémenter facilement un caractère genre "c=c+1-->d"
Merci ++
Cela servira peut être à d'autres en plus.
 
 

Code :
  1. @echo on&setlocal EnableExtensions EnableDelayedExpansion
  2. rem definition des variable disk destination et flag
  3. set destfolder=g:\test
  4. set disk=0
  5. set /A flag=0
  6. set type=jpg
  7. rem reste à faire en menu pour type de fichier et destination (comon) éventuellement lecteurs à tester
  8. rem set de la variable disk après testdisk (mettre a:z pour tous les lecteurs)
  9. :0
  10. set disk=u:\
  11. goto testdisk
  12. :1
  13. set disk=d:\
  14. goto testdisk
  15. :2
  16. set disk=e:\
  17. goto testdisk
  18. :3
  19. exit
  20. rem test di la lettre du lecteur existe
  21. :testdisk
  22. if exist %disk% goto scan
  23. if not exist %disk% goto wrong 
  24. rem scan des fichiers
  25. :scan
  26. for /f "delims=" %%Y in ('dir %disk% /b /s'
  27. ) do (for /f "delims=" %%Z in ('dir /B /s "%%~fY\*.%type%"') do (
  28. copy "%%Z" "%destfolder%\%%~nZ.jpg"
  29. ))
  30. set /A flag=%flag%+1
  31. goto %flag%
  32. rem si existe pas on augmente le flag pour tester un autre lecteur
  33. :wrong
  34. echo il n'y a pas de disque avec cette lettre!
  35. set /A flag=%flag%+1
  36. goto %flag%

mood
Publicité
Posté le 01-09-2010 à 16:45:37  profilanswer
 

n°2020497
komar_666
Posté le 01-09-2010 à 18:07:49  profilanswer
 

Modification avec menu:
Choix des type de fichier
Choix de la destination

Code :
  1. @echo off&setlocal EnableExtensions EnableDelayedExpansion
  2. cls
  3. :menu
  4. REM PRESENTATION
  5. echo                      -- Scan-4-Bck_up filetype by ***komar_666*** --
  6. echo -- Select filetype --
  7. echo 1 === Rar
  8. echo 2 === Doc
  9. echo 3 === Csv
  10. echo 4 === Jpg
  11. echo 5 === Another
  12. set var=
  13. set /p var=Your choice ?
  14. if '%var%'=='1'  goto rar
  15. if '%var%'=='2'  goto doc
  16. if '%var%'=='3'  goto csv
  17. if '%var%'=='4'  goto jpg
  18. if '%var%'=='5'  goto another
  19.  echo The choice %var% is not valid.
  20. echo.
  21. goto menu
  22. :menu2
  23. echo -- Select destination folder --
  24. set /p destfolder= Destination folder. May exist :
  25. goto 0
  26. REM PROG!!!
  27. rem definition des variable disk destination et flag
  28. set disk=0
  29. set /A flag=0
  30. :rar
  31. set type=rar
  32. goto menu2
  33. :doc
  34. set type=doc
  35. goto menu2
  36. :csv
  37. set type=csv
  38. goto menu2
  39. :jpg
  40. set type=jpg
  41. goto menu2
  42. :another
  43. set /p type= Enter filetype, pls :
  44. goto menu2
  45. rem set de la variable disk après testdisk (mettre a:z pour tous les lecteurs)
  46. :0
  47. set disk=u:\
  48. goto testdisk
  49. :1
  50. set disk=d:\
  51. goto testdisk
  52. :2
  53. set disk=e:\
  54. goto testdisk
  55. rem end of prog
  56. :3
  57. echo Scan-4-Bck_up will shutdown
  58. exit
  59. rem if drive exist
  60. :testdisk
  61. if exist %disk% goto variable
  62. if not exist %disk% goto wrong
  63. rem scan of files
  64. :variable
  65. rem definition variables avant scan
  66. rem ...plus besoin set destfolder=g:\test
  67. echo -Drive %disk% found! Start scanning........
  68. echo -Pls wait
  69. goto scan
  70. :scan
  71. for /f "delims=" %%Y in ('dir %disk% /b /s'
  72. ) do (for /f "delims=" %%Z in ('dir /B /s "%%~fY\*.%type%"') do (
  73. copy "%%Z" "%destfolder%\%%~nZ.%type%"
  74. echo %%~fY\%%~nZ.%type%
  75. ))
  76. set /A flag=%flag%+1
  77. goto %flag%
  78. rem if drive doesn't exist flag+1
  79. :wrong
  80. echo -Thereis no drive %disk%
  81. set /A flag=%flag%+1
  82. goto %flag%


n°2020502
komar_666
Posté le 01-09-2010 à 18:15:56  profilanswer
 

a venir un net share et selection du lecteur.... si quelqun à une meilleure idée...?


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

  Récupérer un type de fichier sur lecteurs voulus

 

Sujets relatifs
[SQL Server 2005] Exporter une table vers un fichier texte via SSISRécupérer la valeur d'un bouton radio en JS
Type d'un templateType erasure et accesseurs
Impossible de copier/coller un path dans un input type file sous FF3faire une recherchev et sommer les colonnes sur un fichier excel avec
Erreur 13 :incompatibilité typeCopie de fichier : Quel langage?
[VBS] Tester l'existence d'un fichier CSV sur intranetOuvrir un fichier, quelles solutions?
Plus de sujets relatifs à : Récupérer un type de fichier sur lecteurs voulus


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