+ Répondre à la discussion
Affichage des résultats 1 à 9 sur 9
  1. #1
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    février 2008
    Messages
    33
    Détails du profil
    Informations personnelles :
    Âge : 26
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : février 2008
    Messages : 33
    Points : 16
    Points
    16

    Par défaut [XP]copier plusieurs fichiers avec la commande copy

    Bonjour,

    J'ai besoin de copier plusieurs fichiers dans un dossier. Pour cela, j'utilise la commande windows copy.

    Code :
    1
    2
    copy /b "C:\fichier 1"+ /b "C:\fichier 2" "C:\dossier de destination"
    reponse de windows :

    Code :
    1
    2
    Le fichier spécifié est introuvable


    Je ne comprend pas cette erreur

    xcopy m'indique, quant à lui, que le fichier 2 est introuvable alors qu'il existe bel et bien

    (J'ai mis des espaces dans les noms de fichiers et de dossier de destination volontairement)

  2. #2
    Responsable Réseaux

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    mai 2007
    Messages
    11 282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : mai 2007
    Messages : 11 282
    Points : 49 805
    Points
    49 805

    Par défaut

    Après un essai, la commande que tu passes ne fais pas ce que tu veux. En effet,
    Code :
    1
    2
    copy /b "C:\fichier 1"+ /b "C:\fichier 2" "C:\dossier de destination"
    concatène "C:\fichier 1" et "C:\fichier 2" et la concaténation de ces 2 fichiers va dans "C:\dossier de destination".
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  3. #3
    Expert Confirmé Sénior

    Inscrit en
    décembre 2004
    Messages
    19 649
    Détails du profil
    Informations forums :
    Inscription : décembre 2004
    Messages : 19 649
    Points : 31 386
    Points
    31 386

    Par défaut

    L'utilisation du "+" avec la commande copy sert à concaténer plusieurs fichiers et non les à copier.
    Il faut donc un nom de fichier cible qui sera l'assemblage des fichiers sources et non un nom de dossier.
    Mais je ne pense pas que c'est ce que tu veux faire ?

  4. #4
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    février 2008
    Messages
    33
    Détails du profil
    Informations personnelles :
    Âge : 26
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : février 2008
    Messages : 33
    Points : 16
    Points
    16

    Par défaut

    En effet, ce que je souhaite, c'est copier plusieurs fichiers dans un dossier de destination.

    Une boucle est peut être indispensable dans ce cas...

    Je viens de faire des recherches sur le net, mais je n'ai pas trouvé (compris surtout ) comment réaliser la boucle dans mon projet :

    depuis une appli windows, je voudrai créer et exécuter un petit batch permettant de lire chaque ligne d'un tableau contenant chacune un fichier de destination. Pour chacun de ces fichiers, je fais une copie dans un autre répertoire...

    l'algo ressemble à çà (ce sera un batch après) :

    Code :
    1
    2
    3
    4
    5
    Pour chaque nomDeFichierDOrigine dans mon tableau
       texte = "copy nomDeFichierDOrigine dossierDeDestinationDefiniPlusHaut"
       exécuter(texte)
    Fin Pour
    Si vous pouviez me donner une petite piste, je serai preneur. Merci d'avance.

  5. #5
    Expert Confirmé Sénior

    Inscrit en
    décembre 2004
    Messages
    19 649
    Détails du profil
    Informations forums :
    Inscription : décembre 2004
    Messages : 19 649
    Points : 31 386
    Points
    31 386

    Par défaut

    Il faut en effet une boucle.
    Tu devrais trouver les informations nécessaires dans ce froum et/ou dans la FAQ DOS.
    Il y a déjà des codes pour la lecture d'un fichier ligne par ligne par exemple.
    Il te suffit d'y ajouter la ligne de copie.

  6. #6
    Débutant
    Avatar de koKoTis
    Inscrit en
    août 2006
    Messages
    3 408
    Détails du profil
    Informations forums :
    Inscription : août 2006
    Messages : 3 408
    Points : 2 359
    Points
    2 359

    Par défaut

    je ne sais pas si on peut lire des lignes d'un tableau, mais voici une boucle qui lit les lignes d'un fichier .txt contenant les chemins de fichiers a copier puis qui les copie:
    Code :
    for /f "tokens=*" %%i in ('type fichier.txt') do copy "%%i" "%destination%%%~nxi"

  7. #7
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    février 2008
    Messages
    33
    Détails du profil
    Informations personnelles :
    Âge : 26
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : février 2008
    Messages : 33
    Points : 16
    Points
    16

    Par défaut

    merci KoKoTis

    J'ai modifier un brin le code que tu m'a donné et fais ceci :

    Code :
    FOR /f %%i IN (C:\LesFichiersACopier.txt) DO copy "%%i" "C:\Documents and Settings\USER\Bureau\destination"
    et ça marche ! Merci encore.

  8. #8
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    février 2008
    Messages
    33
    Détails du profil
    Informations personnelles :
    Âge : 26
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : février 2008
    Messages : 33
    Points : 16
    Points
    16

    Par défaut

    Problème : les fichiers à copier comportant un espace sont mal lus

    Exemple "C:\mon fichier" est lu "c:\mon"...

    Comment contourner ce problème ? merci d'avance.

  9. #9
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    février 2008
    Messages
    33
    Détails du profil
    Informations personnelles :
    Âge : 26
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : février 2008
    Messages : 33
    Points : 16
    Points
    16

    Par défaut

    J'ai trouvé !

    il s'agit de "delims=leDelimitateur"

    un exemple quand même :

    Code :
    FOR /f "delims=;" %%i IN (C:\LesFichiersACopier.txt) DO copy "%%i" "C:\Documents and Settings\USER\Bureau\destination"

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

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •