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

Récupérer un type de fichier sur lecteurs voulus - Shell/Batch - Programmation

Marsh Posté le 01-09-2010 à 16:45:37    

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%

Reply

Marsh Posté le 01-09-2010 à 16:45:37   

Reply

Marsh Posté le 01-09-2010 à 18:07:49    

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%


Reply

Marsh Posté le 01-09-2010 à 18:15:56    

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

Reply

Sujets relatifs:

Leave a Replay

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