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

    Informations professionnelles :
    Activité : Étudiant

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

    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 Raymond Mercier
    Consultant en sécurité
    Inscrit en
    mai 2007
    Messages
    11 043
    Détails du profil
    Informations personnelles :
    Nom : Homme Raymond Mercier
    Â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 043
    Points : 45 307
    Points
    45 307

    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 : 28 028
    Points
    28 028

    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
    Candidat au titre de Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    février 2008
    Messages
    33
    Détails du profil
    Informations personnelles :
    Âge : 25
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

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

    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 : 28 028
    Points
    28 028

    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 380
    Détails du profil
    Informations forums :
    Inscription : août 2006
    Messages : 3 380
    Points : 2 160
    Points
    2 160

    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
    Candidat au titre de Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    février 2008
    Messages
    33
    Détails du profil
    Informations personnelles :
    Âge : 25
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

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

    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
    Candidat au titre de Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    février 2008
    Messages
    33
    Détails du profil
    Informations personnelles :
    Âge : 25
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

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

    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
    Candidat au titre de Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    février 2008
    Messages
    33
    Détails du profil
    Informations personnelles :
    Âge : 25
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

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

    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
  •