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 :

probléme copie de fichier [Batch]


Sujet :

Scripts/Batch

  1. #1
    Membre averti
    Avatar de alex61
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2010
    Messages
    378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2010
    Messages : 378
    Points : 392
    Points
    392
    Par défaut probléme copie de fichier
    bonjour

    tout d abord je suis en train de faire mon premier batch donc j'ai surement fait une erreur complètement débile

    je créé un script d'installation d'un soft que j'ai créé

    et pour cela j'ai besoin que mon script copie deux dossier dans programme file dans un dossier creer pour ca
    donc j'utilise le code suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    set rep_instal = %CD%
    set folder=%programfiles%
    cd "%folder%"
    
    MD EPI
    MD EPI\EPI_CLIENT
    MD EPI\EPI_SERVICE
    MD %CD%\test
    
    xcopy /E  "%CD%\EPI_CLIENT" "%programfiles%\EPI\EPI_CLIENT"
    xcopy /E  "%CD%\EPI_SERVICE" "%programfiles%\EPI\EPI_SERVICE"
    ca me créer bien les dossier mais ca ne me copie pas les fichier a l'intérieur

    donc si quelqu'un pourrait me donner un coup de main ca serait sympa

  2. #2
    Membre expert

    Homme Profil pro
    Spécialiste progiciel
    Inscrit en
    Février 2010
    Messages
    1 747
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Spécialiste progiciel
    Secteur : Service public

    Informations forums :
    Inscription : Février 2010
    Messages : 1 747
    Points : 3 016
    Points
    3 016
    Par défaut
    Bonjour,

    Il me semble que ce doit être des guillemets à la place des % autour de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set folder="programfiles"
    Tu as le cas tout le long, je te conseille de revoir l'utilisation des variables en batch.

  3. #3
    Membre averti
    Avatar de alex61
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2010
    Messages
    378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2010
    Messages : 378
    Points : 392
    Points
    392
    Par défaut
    moi j'ai l'impression qu'elle marche mes variable

    car ceci fonctionne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    set rep_instal = %~dp0
    set folder = %programfiles%
    
    cd %folder%
    
    MD EPI
    MD EPI\EPI_CLIENT
    MD EPI\EPI_SERVICE
    
    
    cd %rep_instal%
    
    
    xcopy /E  "EPI_CLIENT" "%programfiles%\EPI\EPI_CLIENT" 
    xcopy  /E "EPI_SERVICE" "%programfiles%\EPI\EPI_SERVICE"
    avec un bémol
    il creer un fichier EPI avec EPI_SERVICE et EPI_CLIENT ( les deux vide ) dans le dossier ou ce situe mon script quelqu'un voit pourquoi ?

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 18
    Points : 25
    Points
    25
    Par défaut
    Au lieu d'avoir "EPI_CLIENT" et "EPI_SERVICE" à la racine de ton répertoire d'installation, je te conseille d'avoir la même structure que ce que tu veux dans %programfiles%, à savoir les deux répertoires sous un répertoire racine "EPI". De cette façon une seule ligne de commande devrait te permettre de tout copier sans avoir de répertoires à créer avec "MD"

    Ensuite, à propos de xcopy : si le répertoire destination EPI n'existe pas, il faut indiquer à xcopy que la destination est un répertoire en ajoutant un "\" à la fin du chemin de destination. Sinon, il pose la question suivante :
    Est-ce que EPI spécifie un nom de fichier
    ou un nom de répertoire de la destination
    (F = fichier, R = répertoire)*?


    Il faudrait donc écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xcopy /E "%rep_install%\EPI" "%programfiles%\EPI\"
    et la création du répertoire EPI et de ses sous-répertoires devrait être automatique d'après mes tests


    A+
    Cédric

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 18
    Points : 25
    Points
    25
    Par défaut
    Citation Envoyé par alex61 Voir le message

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    set rep_instal = %~dp0
    set folder = %programfiles%
    
    cd %folder%
    
    MD EPI
    MD EPI\EPI_CLIENT
    MD EPI\EPI_SERVICE
    
    ...
    il crée un fichier EPI avec EPI_SERVICE et EPI_CLIENT ( les deux vides ) dans le dossier ou ce situe mon script quelqu'un voit pourquoi ?
    Il faut se méfier de la commande "cd" : elle ne fait pas toujours ce qu'on croit ! Ici, je pense que ton répertoire courant n'est pas sur le même disque que le répertoire %programfiles%

    Je crois que Windows gère un répertoire courant par disque (ou drive), et un disque courant, et que le répertoire courant accessible par la variable %cd% est toujours celui du disque courant.

    Donc, si tu es sur un certain disque, et que la commande cd change le chemin pour un autre disque, tu n'as en fait pas changé de répertoire courant : ce ne sera le cas que quand tu changeras de disque. Tu peux le vérifier dans ton script en ajoutant des "echo %cd%" après les changements de répertoire.

    Un petit exemple pour visualiser le fonctionnement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    D:\Temp>echo %cd%
    D:\Temp
    
    D:\Temp>cd c:\temp
    
    D:\Temp>echo %cd%
    D:\Temp
    
    D:\Temp>c:
    
    C:\Temp>echo %cd%
    C:\Temp
    
    C:\Temp>cd d:\download
    
    C:\Temp>echo %cd%
    C:\Temp
    
    C:\Temp>d:
    
    D:\Download>echo %cd%
    D:\Download
    
    D:\Download>
    Pour résoudre ton problème :
    - soit tu te passes des "MD" (voir mon post précédent)
    - soit tu changes explicitement de disque (on peut par exemple utiliser la variable %SYSTEMDRIVE% si on est sûr que %programfiles% est toujours sur ce disque)
    - soit tu fait tes MD en indiquant des chemins complets plutôt que relatifs -> MD "%folder%\EPI" . Note que MD risque de te renvoyer une erreur si le répertoire existe déjà

    Au fait : tu positionnes une variable "folder" mais ensuite tu utilises %programfiles% au lieu de %folder% pour les xcopy : c'est normal?

  6. #6
    Membre averti
    Avatar de alex61
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2010
    Messages
    378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2010
    Messages : 378
    Points : 392
    Points
    392
    Par défaut
    oué impeccable j'ai utiliser la même arborescence que dans programme file et il n'y a plus le bug

    au final ca me donne ca

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    :INSTALATION DU FRAMEWORK .NET 2.0
    
    start dotnetfx.exe
    
    : CREATION DU DOSSIER D'INSATLATION ET COPIE
    set rep_instal = %~dp0
    set folder = %programfiles%
    
    cd %folder%
    
    MD EPI
    :MD EPI\EPI_CLIENT
    :MD EPI\EPI_SERVICE
    
    
    cd %rep_instal%
    
    xcopy /E "EPI" "%programfiles%\EPI\"
    :xcopy /E  "EPI_CLIENT" "%programfiles%\EPI\EPI_CLIENT\" 
    :xcopy  /E "EPI_SERVICE" "%programfiles%\EPI\EPI_SERVICE\" 
    
    
    : CREATION RACOURCI SUR LE BUREAU 
    
    start inc_instal1.vbs
    
    : AJOUT DU SERVICEEPI DANS LES PROGRAMME AU DEMARAGE
    
    start inc_instal2.vbs
    
    : MODIFICATION DU FICHIER .INI


    j'ai plus qu'a modifié un .ini et j'ai finit

    merci

    cordialement

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

Discussions similaires

  1. problème copie de fichiers sur cle usb
    Par pyoda dans le forum Général Python
    Réponses: 0
    Dernier message: 22/04/2015, 13h30
  2. Problème copie de fichiers
    Par Korteby dans le forum Excel
    Réponses: 3
    Dernier message: 24/08/2013, 14h16
  3. Problème copie de fichier
    Par vfanelia dans le forum Shell et commandes POSIX
    Réponses: 12
    Dernier message: 16/05/2012, 00h51
  4. Problème copie de fichiers
    Par trollichinelle dans le forum Langage
    Réponses: 2
    Dernier message: 26/06/2008, 13h44
  5. Problème pour faire une copie de fichier.
    Par damien99 dans le forum C++
    Réponses: 1
    Dernier message: 12/02/2006, 17h37

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