IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Copier des fichiers sur une clé USB, problème pour le chemin.


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Inscrit en
    Janvier 2010
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 9
    Par défaut Copier des fichiers sur une clé USB, problème pour le chemin.
    Bonjours à tous!

    J'essaye d'écrire un batch qui copie les images présente sur le disque C sur une clé USB (ici appelé "clé_USB"). Mon problème est que je ne sais pas comment faire pour que la copie se fasse meme si la clé ne correspond pas toujours au même lecteur... (un coup c'est g: et sur un autre PC se sera j: ...)

    mon code actuel qui donc n'est pas du tout polyvalent :

    cls
    @echo off

    REM copie des fichiers de l'extension .jpg

    XCOPY /Q /Y /S /C C:\"*.jpg" "G:\Copie des images"


    Je débute en batch, j'aimerai bien comprendre quelles commande sont à utilisées et pourquoi.
    Merci @+

  2. #2
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Par défaut
    En fait, "tel quel", c'est strictement impossible de savoir quelle est "ta" clé. Une solution simple passe par le fait de lui donner un nom prédéfini et connu à l'avance, ce qui permet alors de retrouver la lettre de lecteur associée.

    Sinon, il te faudra passer par une phase de demande de l'information à l'utilisateur, ce qui bien sûr "casse" l'automatisation de ton batch.

    Tu peux toutefois facilement trouver tous les lecteurs amovible de l'ordinateur via cette commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for /F "tokens=3" %%I in ('echo list volume ^| diskpart ^| find /i "amovible"') do (
      echo %%I => Disque amovible
    )
    Entre les deux parenthèses, la variable %%I contiendra successivement toutes les lettres de lecteurs amovibles, notamment les clés USB. Tu n'auras aucune unité de disque fixe (notamment, tu ne verras pas le disque C), ni aucune unité de CD/DVD.

    Il est évident que si tu ne trouves qu'un seul et unique résultat, tu peux alors automatiser ton batch. Si tu en trouves deux ou plus, c'est à toi de décider ce que tu veux faire au final.
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  3. #3
    Nouveau membre du Club
    Inscrit en
    Janvier 2010
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 9
    Par défaut
    Donc en gros si je suis la méthode que tu explique le for ... do va crée un fichier avec le nom de tous les disques amovibles (1 par ligne), ensuite il faudrait que je repioche dans ce fichier pour donner le chemin de ma clé (c'est pour ca que si il y en a plusieurs ca marche pas). Ne peut on pas faire en sorte que soit aussi inscrit dans le fichier le nom de la clé, pour pouvoir après faire un if qui va chercher son nom?

    Pour ce que tu dis au début je peu donner un nom fixe à ma clé, est il possible après de mettre ce nom à la place du lecteur dans le chemin? J'ai essayé et ça crée un dossier sur le répertoire...

  4. #4
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2
    Par défaut
    et bien ce que tu pourais faire comme code ses
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    cls
    @echo off
    
    REM copie des fichiers de l'extension .jpg
    set /p place Votre lecteur==
    XCOPY /Q /Y /S /C C:\"*.jpg" "%place%:\Copie des images
    comme sa tu va pouvoir mettre la lettre de ton USB et le tour est jouer

  5. #5
    Membre Expert
    Avatar de I'm_HERE
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 013
    Par défaut
    salut,

    tu peux aussi crée uan fichier dans ta clef par exemple monsieurY.x puis tester son existance:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for %%a n (c d e f g h i j k l m n o p q r s t u v w x y z) do (
      If exist %%a:\monsieurY.x (ACTION)
    )

  6. #6
    Nouveau membre du Club
    Inscrit en
    Janvier 2010
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 9
    Par défaut
    Suite à la réponse de I'm Here j'ai essayé ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    cls
    @echo off
    
    for %%a in (c d e f g h i j k l m n o p q r s t u v w x y z) do ( If exist %%a:\monsieurY.x (xcopy /q /y /s /c c:\"*.jpg" %%a\Copies des images))
    j'obtiens plusieurs erreurs et pour finir "Nombre de paramètres non valide"

    PS : il n'y a pas un paramètre du genre /y pour que l'on ne soit pas obligé de dire "continuer" à chaque erreurs?

  7. #7
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Par défaut
    Il est beaucoup, BEAUCOUP plus simple et fiable d'utiliser la boucle for utilisant diskpart que j'ai donnée précédemment plutôt que d'essayer toutes les lettres de lecteurs possible...
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  8. #8
    Membre Expert
    Avatar de I'm_HERE
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 013
    Par défaut
    salut,

    pas tester mais essayes en modifiant ton code ainsi:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xcopy /q /y /s /c "c:\*.jpg" "%%a:\Copies des images\"

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 06/12/2012, 16h50
  2. Synchroniser des dossiers et fichiers sur une clé USB
    Par kilian67 dans le forum Windows XP
    Réponses: 5
    Dernier message: 01/12/2008, 17h24
  3. Réponses: 2
    Dernier message: 29/03/2007, 15h45
  4. Copier des fichiers d'une machine à une autre
    Par Empty_body dans le forum Réseau
    Réponses: 3
    Dernier message: 29/10/2006, 12h44
  5. récupérer des données sur une clef USB
    Par mullger dans le forum Périphériques
    Réponses: 6
    Dernier message: 25/09/2006, 18h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo