Programme usb .bat de copie de fichier selon leur extension

Résolu
gopou54 Messages postés 16 Statut Membre -  
gautier019 Messages postés 154 Statut Membre -
Bonjour, j'ai 19 ans et je suis passionné d'informatique.

j'ai cherché sur de nombreux sites comment faire pour programmer un logiciel qui aurait pour but de copier les données d'un disque dur d'ordinateur en fonction de leurs extension directement sur une clé USB.

ex: je souhaite copier les fichiers .exe je modifie l'extension de mon programme de .bat en .txt j'écris que je souhaite copier les fichier .exe je sauvegarde les modifications et repasse en .bat pour que quand je clique sur mon programme .bat et tous les fichiers .exe de l'ordinateur se copie sur la clé USB jusqu'à saturation de celle-ci idem pour les fichier .iso .img .avi ou .jpg etc ...(bien sur je parle de transfert de petite taille pas de fichier de 4 ou 10Go)

j'ai cherché de long en large à le faire moi-même avec des Tuto sur Internet en .bat ou (.batch) car il me semble que c'est un langage suffisamment performante pour faire ce programme mais je suis loin d'être à la hauteur pour y arriver j'espère avoir suffisamment détaillées mon problème pour être compris

(de mémoire j'ai déjà possédé un logiciel dans le style mais pas en .bat c'était un logiciel .exe standard avec un interface simple et clair mais impossible de me souvenir du nom)

Merci d'avance pour votre aide

7 réponses

  1. Profil bloqué
     
    Si tu veux copier un type d'extension précis, utilise xcopy

    XCOPY /s "C:\LeCheminDeTonRepetoire\*.xxx" "Y:\"

    .xxx = l'extension que tu veux copier
    Y = La lettre de ta clé USB

    Tu as juste à mettre dans un fichier texte que tu renomme en .bat et à l'exécuter.
    6
  2. Azraka Messages postés 265 Statut Membre 13
     
    Bonjour,

    Est-ce que tu peux nous en dire un peu plus sur l'usage que tu comptes faire de ce genre de script ?
    0
  3. gopou54 Messages postés 16 Statut Membre
     
    Bonjour

    Merci SyntaxErr0r pour ta réponse est ton lien je vais jeter un oeil à tout ça essayer de me débrouiller

    Pour répondre à Azraka ce petit programme me permettrait comme je l'ai expliqué dans ma définition de copier très rapidement un certain type de fichier sans avoir à aller dans chaque dossier et a les sélectionnés un par un ensuite les copier ce programme aurait donc une multitude d'utilité pour ma part l'utilité principale est que je suis actuellement étudiant en mécanique bac pro MEI (maintenances équipements industrielles) nous utilisons un logiciel de dessin en 3D pour représenter des pièces mécaniques il s'appelle inventor ce logiciel permet de faire énormément de choses et chaque une a une extension propre exemple: .ipt .idw .iam ... il faut savoir que chaque vis chaque rondelle chaque boulon d'une machine est enregistré comme ceci ex: tube.ipt vis.ipt il y a donc énormément de dossier et de sous dossier c'est pourquoi je veux un logiciel de copie rapide en fonction des extensions

    cordialement
    0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. Profil bloqué
     
    Pour faire plus simple, tu n'es pas obligé de faire un programme batch pour ça.

    Tu peux saisir exactement la même chose dans l'invite de commande windows.

    Après si tu n'arrive pas à te rappeler de la syntaxe de la commande, l'enregistrer en tant que .bat peut-être une solution pour éviter de la taper à chaque fois.
    0
  6. gopou54 Messages postés 16 Statut Membre
     
    oui mais un logiciel en .bat serais beaucoup plus rapide et effectivement je n'aurais pas à retaper la commande à chaque foi de plus si le .bat se trouve sur la clé usb il me suffit de brancher la cle cliqué sur le .bat et la copie ce ferais automatiquement
    0
    1. Utilisateur anonyme
       
      c'est effectivement bien pratique, j'ai mis cela sur ma clé usb pour sauvegarder en un clic un certain nombre de fichiers de différents dossiers du disque sur la clé
      @echo off
      xcopy/d/y d:\dossier\sous dossier\*.dt5 \dossier\sous dossier
      xcopy/d/y d:\dossier2\sous dossier2\*.dt5 \dossier2\sous dossier2
      xcopy/d/y d:\dossier3\sous dossier3\*.dt5 \dossier3\sous dossier3

      les options après xcopy permettent de ne pas écraser des fichier nouveaux par des anciens (vérif de date de fichiers)
      d:\dossier\sous dossier\ est l'origine
      *.dt5 est le type de fichiers a copier
      \dossier\sous dossier est la même arborescence sur la clé (pas besoin de donner la
      lettre de la clé puisque l'appel des commande se fait sur la clé !!!


      Nota : il y a un espace
      entre \y et d:
      et entre *.dt5 et \dossier, c'est important !!
      0
    2. gopou54 Messages postés 16 Statut Membre
       
      quand tu écrit

      xcopy/d/y le d c'est par exemple c: de mon disque dur ? et le Y c'est quoi ??

      dsl de ne pas tout comprendre du 1er coup :)
      0
    3. Utilisateur anonyme
       
      oui d: est le disque source
      le /d pour vérifier la date
      le /y pour ne pas dire à chaque fois ok pour la copie (écraser un fichier ancien par un nouveau)
      0
    4. gopou54 Messages postés 16 Statut Membre
       
      ah la la merci beaucoup de ton aide tout est bien plus clair comme ça et après une 2éme lecture attentive

      je vais bidouiller tout ça ça devrait aller impeccable encore merci
      0
    5. Utilisateur anonyme
       
      oui tu adapte pour ton cas particulier, la base est là ................
      D: pour moi sera c: pour toi, etc
      0
  7. gopou54 Messages postés 16 Statut Membre
     
    merci beaucoup SyntaxErr0r pour ta première réponse fait un test avec cette ligne de code

    c:\\ pour dire de faire la copie depuis tout le disque dur
    .ipt pour mes pièce en dessin 3D
    G: our le nom de ma clé usb

    XCOPY /s "C:\\*.ipt" "G:\"

    tout a marché parfaitement j'ai cependant une petit question comment dois=je écrire mon code si je veux copier 2 type d'extension exemple .ipt et .idw
    et faire en sorte que les 2 soit copier dans un seul dossier car a mon 1er teste j'ai eu au moins 8 dossier avec dans chacun 2 ou 3 .ipt ça serais plus simple pour moi d'avoir tout dans un seul dossier

    et je voulais savoir aussi a quoi sert les " " et le *

    merci d'avance
    0
    1. Azraka Messages postés 265 Statut Membre 13
       
      Le *.ipt signifie tous les fichiers dont l'extension est .ipt.
      Les quotes (") servent dans le cas de chemins avec des espaces, ce n'est pas nécessaire ici.
      Quant aux répertoires/sous répertoires, je crains que tu doives faire avec, xcopy ne permet pas de choisir de les prendre ou pas. Il faudrait les enlever à la main après la copie et ça serait compliqué.

      Ce que je te conseille de faire :
      Met ça dans un fichier bat : XCOPY /sw%4 %1:\\*.%3 %2:\
      C'est la même chose que ce que tu as fait avant mais avec des paramètres.
      Dans l'ordre où il faut les passer :
      1. Le lecteur source
      2. Le lecteur de destination
      3. L'extension des fichiers à copier
      4. Des paramètres à passer à xcopy

      Par exemple, mettons que ton fichier bat se nomme copyExt.bat ça donnerait (en se plaçant dans le répertoire où est le script) :

      Copier tous les .ipt de C vers G :
      copyExt C G ipt
      Lister tous les .ipt à copier de C vers G :
      copyExt C G ipt l


      l (L minuscule) sert à dire à xcopy de lister les fichiers au lieu de les copier, cf www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/xcopy.mspx?mfr=true
      0
    2. Azraka Messages postés 265 Statut Membre 13
       
      J'y ai repensé un peu, voici un truc qui fera exactement ce que tu veux :
      @echo off
      for /R %1 %%f in (*.%3) do copy "%%f" %2
      pause
      (à mettre dans un fichier bat, comme expliqué précédemment)

      Ensuite appeler le fichier bat avec en paramètre :
      Dans l'ordre où il faut les passer :
      1. Le chemin source (penser à l'antislash final)
      2. Le chemin de destination (penser à l'antislash final)
      3. L'extension des fichiers à copier

      Ça te mettra tout au même endroit, et gère les espaces dans les noms de fichiers.
      0
    3. gopou54 Messages postés 16 Statut Membre
       
      merci Azraka je vais testé sa tout de suite
      0
    4. gopou54 Messages postés 16 Statut Membre
       
      rah la la je ne comprend pas sa ne marche pas. je donne tous les éléments a mon cas si je suis exactement se que tu me dit juste au dessus mon code ressemble à ça:

      @echo off
      for /R %c:\Utilisateurs\administrateur\ %%f in (*.%ipt) do copy "%%f" %G:\
      pause

      c:\ est mon disque dur
      utilisateur c'est une foi que je suis dans c:
      administrateur c'est ma session dans la quelle j'ai plusieurs dossier avec des fichier .ipt
      (*.%ipt) c'est le forma de fichier que je veux
      et le G:\ c'est la racine de ma clé usb

      il y a-t-il une erreur ??
      0