Programme usb .bat de copie de fichier selon leur extension

Résolu/Fermé
gopou54 Messages postés 16 Date d'inscription jeudi 7 février 2013 Statut Membre Dernière intervention 2 mai 2015 - 7 févr. 2013 à 01:38
gautier019 Messages postés 140 Date d'inscription samedi 19 mai 2012 Statut Membre Dernière intervention 12 juin 2017 - 15 févr. 2013 à 22:52
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


A voir également:

7 réponses

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
Profil bloqué
7 févr. 2013 à 18:10
Et en complément d'info :

https://windows.developpez.com/cours/ligne-commande/?page=page_9

Tout est très bien expliqué sur cette page, tu devrais t'en sortir.
1
Azraka Messages postés 252 Date d'inscription mercredi 11 juin 2008 Statut Membre Dernière intervention 5 juin 2014 13
7 févr. 2013 à 18:01
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
gopou54 Messages postés 16 Date d'inscription jeudi 7 février 2013 Statut Membre Dernière intervention 2 mai 2015
7 févr. 2013 à 18:23
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Profil bloqué
7 févr. 2013 à 18:32
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
gopou54 Messages postés 16 Date d'inscription jeudi 7 février 2013 Statut Membre Dernière intervention 2 mai 2015
7 févr. 2013 à 18:44
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
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
gopou54 Messages postés 16 Date d'inscription jeudi 7 février 2013 Statut Membre Dernière intervention 2 mai 2015
7 févr. 2013 à 19:07
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
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
gopou54 Messages postés 16 Date d'inscription jeudi 7 février 2013 Statut Membre Dernière intervention 2 mai 2015
7 févr. 2013 à 19:11
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
Utilisateur anonyme
7 févr. 2013 à 19:13
oui tu adapte pour ton cas particulier, la base est là ................
D: pour moi sera c: pour toi, etc
0
gopou54 Messages postés 16 Date d'inscription jeudi 7 février 2013 Statut Membre Dernière intervention 2 mai 2015
7 févr. 2013 à 19:02
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
tu as un exemple en post #7 https://forums.commentcamarche.net/forum/affich-27085267-programme-usb-bat-de-copie-de-fichier-selon-leur-extension#7

tu remplaces .dt5 par tes extensions, 1 ligne par extension
0
Azraka Messages postés 252 Date d'inscription mercredi 11 juin 2008 Statut Membre Dernière intervention 5 juin 2014 13
Modifié par Azraka le 8/02/2013 à 15:57
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
Azraka Messages postés 252 Date d'inscription mercredi 11 juin 2008 Statut Membre Dernière intervention 5 juin 2014 13
8 févr. 2013 à 17:55
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
gopou54 Messages postés 16 Date d'inscription jeudi 7 février 2013 Statut Membre Dernière intervention 2 mai 2015
8 févr. 2013 à 17:57
merci Azraka je vais testé sa tout de suite
0
gopou54 Messages postés 16 Date d'inscription jeudi 7 février 2013 Statut Membre Dernière intervention 2 mai 2015
8 févr. 2013 à 18:16
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