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 :

xcopy sur dossier distant [Batch]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 183
    Par défaut xcopy sur dossier distant
    Bonjour, je bute sur un problème tout bête en apparence.

    J'ai créé un exécutable bat qui permet la copie d'un fichier réseau sur le pc en local. Le fichier d'origine se trouve sur un serveur avec comme OS Windows Server 2003.
    Les Pc lançant ce fichier bat sont sous W7.

    Voici mon fichier bat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    @echo off
    
    xcopy /F /Y /H "\\@IPduServeur\dossier1\dossier2\fichier.xls" "C:\dossier1\FichierTmp.xls" 
    pause
    "C:\Program Files\Microsoft Office\Office14\EXCEL.EXE" "C:\dossier1\FichierTmp.xls"
    pause
    rmdir C:\Dossier1 /s /q
    
    exit
    Sauf que lorsque je lance le bat depuis le serveur où est situé le fichier, ça marche mais lorsque je le lance depuis un PC sous Win7 j'ai ce message d'erreur :
    "CMD.EXE a été démarré avec le chemin d'accès comme répertoire en cours. Les chemins d'accès UNC ne sont pas pris en charge. Utilisation du répertoire windows par défaut."

    Je suis ensuite passé par un lecteur réseau :



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    @echo off
    net use W:\ "\\@IPduServeur\dossier1"
    xcopy /F /Y /H "W:\dossier2\fichier.xls" "C:\dossier1\FichierTmp.xls" 
    pause
    "C:\Program Files\Microsoft Office\Office14\EXCEL.EXE" "C:\dossier1\FichierTmp.xls"
    pause
    rmdir C:\Dossier1 /s /q
    
    exit
    Mais encore une fois même message d'erreur, quelqu'un connait-il une solution à ce problème ?

    Bonne journée

  2. #2
    Membre du Club
    Homme Profil pro
    TSI
    Inscrit en
    Mars 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : TSI

    Informations forums :
    Inscription : Mars 2013
    Messages : 7
    Par défaut
    j'essaye de t'aider comme je peux hein je suis encore novice mais essaye ceci
    bon deja je me demande pourquoi tu utilise xcopy et pas copy (xcopy c'est pour des répertoire &fichier et copy que pour des fichier et ici tu veux copier un fichier et pas un dossier et ses sous répertoire)

    proprement fait ca serait ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    @echo off
    NET USE * /DELETE /YES 
    NET USE W: \\IPSERVEUR\dossier
    set plouf=W:\dossier2
    set plif=%SystemDrive%\dossier1
    copy   "%plouf%\fichier.xls" /Y  "%plif%\FichierTmp.xls"
    pause
    start "%plif%\FichierTmp.xls"
    pause
    exit

    voila test ceci et dit moi si tu as des erreurs

    edit: j'ai enlever la ligne rmdir C:\Dossier1 /s /q car avec cette ligne tu effacera le dossier et les fichier que tu viens de copier

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 183
    Par défaut
    Citation Envoyé par AngelPi Voir le message
    j'essaye de t'aider comme je peux hein je suis encore novice mais essaye ceci
    bon deja je me demande pourquoi tu utilise xcopy et pas copy (xcopy c'est pour des repertoire et copy pour des fichier et ici tu veux copier un fichier et pas un dossier et ses sous répertoire)

    proprement fait ca serait ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    @echo off
    NET USE * /DELETE /YES 
    NET USE W: \\IPSERVEUR\dossier
    set plouf=W:\dossier2
    set plif=%SystemDrive%\dossier1
    copy   "%plouf%\fichier.xls" /Y  "%plif%\FichierTmp.xls"
    pause
    start "%plif%\FichierTmp.xls"
    pause
    exit

    voila test ceci et dit moi si tu as des erreurs

    edit: j'ai enlever la ligne rmdir C:\Dossier1 /s /q car avec cette ligne tu effacera le dossier et les fichier que tu viens de copier

    Merci à toi, j'ai adapté ton code sur mon application, voici grosso modo ce que ça donne :

    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
    @echo off
    if exist W: (net use W: /DELETE /YES)
    NET USE W: \\@IP\Dossier1
    set Var1=W:\Dossier2
    set Var2=%SystemDrive%\Temp
    
    If not exist %SystemDrive%\Temp (MD %SystemDrive%\Temp) 
    if exist %Var2%\FichierTmp.xls (echo o|del /s %Var2%\FichierTmp.xls)
    copy   "%Var1%\Fichier.xls" /Y  "%Var2%\FichierTmp.xls"
    net use W: /DELETE /YES
    "C:\Program Files\Microsoft Office\Office14\EXCEL.EXE" "%Var2%\FichierTmp.xls"
    
    echo o|del /s %Var2%\FichierTmp.xls
    
    exit
    Je ne peut pas me permettre de supprimer tous les lecteurs réseau donc je supprime uniquement celui que je créé. Cependant, la fonction copy marche qu'avec un fichier non caché dans un dossier non caché, comment puis-je faire pour copier un fichier caché ?

    Merci encore

  4. #4
    Membre du Club
    Homme Profil pro
    TSI
    Inscrit en
    Mars 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : TSI

    Informations forums :
    Inscription : Mars 2013
    Messages : 7
    Par défaut
    la commande "copy" ne prend pas en compte les fichiers cachés dans ce cas la tu reviens a "xcopy" et tu ajoute dans tes paramètre /H /C

    /H pour les fichiers caché et /C Continue la copie même si des erreurs se produisent


    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
    @echo off
    if exist W: (net use W: /DELETE /YES)
    NET USE W: \\@IP\Dossier1
    set Var1=W:\Dossier2
    set Var2=%SystemDrive%\Temp
    
    If not exist %var2% (MD %var2%) desolé mais if not exist il n'existe pas rien d'autre a faire tu le crée plus loin ca ne sert a rien. dans la ligne plus bas tu lui donne un chemin de creation %var2%
    if exist %Var2%\FichierTmp.xls (echo o|del /s %Var2%\FichierTmp.xls
    ca te sert a quoi d'avoir cette ligne le /Y Supprime la demande de confirmation de remplacement de fichiers de destination existants
    xcopy   "%Var1%\Fichier.xls" /Y /H /C  "%Var2%\FichierTmp.xls"
    net use W: /DELETE /YES
    "C:\Program Files\Microsoft Office\Office14\EXCEL.EXE" pourquoi tu lances excel? ton fichier est reconnu par ton système ayant une extension xls moi j'aurai mis directement la suite
    "%Var2%\FichierTmp.xls"
    
    echo o|del /s %Var2%\FichierTmp.xls je comprend toujours pas pq d'un coté tu le copie dans un autre dossier et dans le meme script tu l'efface donc en fait c'est comme si ton script etait obsolète
    
    exit
    apres quelque test sur mon reseau et mes fichier ca donnerai ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
    @echo off
    if exist W: (net use W: /DELETE /YES)
    NET USE W: \\@IP\Dossier1
    set Var1=W:\Dossier2
    set Var2=%SystemDrive%\Temp
    
    
    xcopy   "%Var1%\Fichier.xls" /Y /H /C  "%Var2%\modifiersonnom.xls"
    net use W: /DELETE /YES
    "%Var2%\FichierTmp.xls"
    
    exit


    voila c'est le code le plus propre que je puisse faire(le seul hic est qu il faut appuyer sur F quand la fenêtre s'ouvre ) je ferai un edit si j'arrive a trouver une solution.

    edit: je crois avoir compris cela vient de xcopy vu que tu veux copier des fichiers caché et qu'il n'y a que xcopy pour ca sauf si c'est tout un répertoire que tu comptes copier tu devras appuyer sur F a chaque fois je vais essayer de m'expliquer mieux


    si tu backup//copie le dossier 2 (W:\Dossier2) ca irait tout seul ça te copiera tout le répertoire avec tout les fichiers caché dans ce dossier dans var2 (le contenue mais pas le contenant du dossier initial)

    dans ce cas le code serait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    @echo off
    if exist W: (net use W: /DELETE /YES)
    NET USE W: \\@IP\Dossier1
    set Var1=W:\Dossier2
    set Var2=%SystemDrive%\Temp
    xcopy   "%Var1%\" /Y /H /C /I  "%Var2%\"
    net use W: /DELETE /YES
    "%Var2%\FichierTmp.xls"
    exit
    voila j’attends que tu me dise ce qui ne te plait pas dans ce script et s'il ya quelque chose a changer.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 183
    Par défaut
    Merci à toi de prendre du temps pour ma requête .

    Bon bah finalement on revient à xcopy ^^.

    J'ai adapté mon code et ça marche très bien, pour la demande de confirmation répertoire ou fichier, il y a une petite astuce, soit tu passe par un "yes-file" soit tu fais comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo f | xcopy   "%Var1%\Fichier.xls" /Y /H /C  "%Var2%\FichierTmp.xls"
    Voilà tout marche bien merci à toi, j'espère ne pas tomber sur d'autres petites barrières comme celle ci .

    Bonne journée

  6. #6
    Membre du Club
    Homme Profil pro
    TSI
    Inscrit en
    Mars 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : TSI

    Informations forums :
    Inscription : Mars 2013
    Messages : 7
    Par défaut
    je t'en prie c'était un plaisir ca me fait de l'entrainement s'il y a autre chose du même genre je suis a ta disposition

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

Discussions similaires

  1. Suppression dossier sur site distant
    Par superjeanpi dans le forum Free
    Réponses: 0
    Dernier message: 26/09/2010, 05h15
  2. [FTP] création et Copy fichier et dossier sur serveur distant
    Par jules_diedhiou dans le forum Langage
    Réponses: 11
    Dernier message: 26/03/2009, 17h21
  3. Créer un dossier sur serveur distant
    Par TorÕ02 dans le forum C++
    Réponses: 7
    Dernier message: 11/10/2004, 17h30
  4. phpmyadmin sur base distante
    Par titi63 dans le forum Installation
    Réponses: 3
    Dernier message: 02/10/2003, 18h19
  5. jsp sur serveur distant
    Par petitelulu dans le forum JBuilder
    Réponses: 5
    Dernier message: 11/09/2003, 11h50

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