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 :

Petite erreur script batch


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2010
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 46
    Par défaut Petite erreur script batch
    bonjour,
    voici un petit script que j'ai écrit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    cls 
    set /p lettre=<%temp%\driveletter.txt
    set e=C:\baba
    set f=%lettre%
    xcopy %e% %f%:\lobo/S
    pause
    il commence par me récupérer la lettre donnée au disque que je branche, puis me copie un dossier baba qui est sur le disque C dans le dossier lobo qui est sur ce disque branché. la lettre de ce disque branché est bien retournée donc L. Moi j'ai pensé qu'en faisant %f%:\lobo cela donnerait lieu à L:\lobo, mais cela cree un espace entre L et :. on a donc L :\lobo.ce qui rend la copie impossible. comme message "nombre de paramètres non valides" aidez moi s'il vous plait. car je cherche à bien maitriser la programmation batch

  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 : 39
    Localisation : France, Haute Loire (Auvergne)

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

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

    je pense qu'il te faut activer l'expansion retardée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Setlocal EnableDelayedExpansion
    Et utilises ta variable f entouré de "!"
    comme cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    cls 
    set /p lettre=<%temp%\driveletter.txt
    set e=C:\baba
    set f=%lettre%
    xcopy %e% !f!:\lobo/S
    pause
    endlocal
    Je n'ai pas testé, tiens moi au courant, merci

  3. #3
    Membre averti
    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
    Par défaut
    Bonjour,

    Tout d'abord je précise que j'utilise Windows XP.

    Citation Envoyé par carden752 Voir le message
    je pense qu'il te faut activer l'expansion retardée
    Je n'ai jamais rencontré ce genre de problème dans la résolution de noms de variables sous XP... Je me dis que, peut-être, c'est l'affectation de la variable qui est faite de telle sorte qu'un caractère est ajouté après la lettre du lecteur dans la variable elle-même.

    LOBO1986 : es-tu sûr du contenu du fichier "driveletter.txt". N'y a-t-il pas un caractère <espace> après la lettre ? J'ai fait des tests et n'ai obtenu le comportement que tu décris que dans deux cas :
    1. en insérant un caractère espace après la lettre dans le fichier "driveletter.txt"
    2. en insérant un caractère espace dans le batch à la fin de la ligne "set f=%lettre%"


    Si c'est le deuxième point, c'est facile à corriger. Si c'est le premier, cela dépend si tu maîtrises ou non le contenu du fichier texte. Je recommanderai donc plutôt l'usage de la ligne suivante pour affecter la variable "f" :
    Si ce n'est aucun des deux points, alors je n'ai pas d'idée


    J'ai fait le script suivant pour tester ma théorie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    @echo off
    set /p test1=<.\test1.txt
    echo test1 = %test1%.
    set /p test2=<.\test2.txt
    echo test2 = %test2%.
    set fa=%test2:~0,1%
    echo fa = %fa%.
    set fb=%test2:~0,1% 
    echo fb = %fb%.
    On ne le voit pas sur l'affichage, mais la ligne "set fb=..." se termine avec un caractère <espace>. Le fichier test1.txt contient la lettre "T". Le fichier test2.txt contient la lettre "T" suivie d'un <espace>

    J'obtiens les résultats suivants :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    test1 = T.
    test2 = T .
    fa = T.
    fb = T .

    A+ et tiens nous au courant...

Discussions similaires

  1. Stopper script batch si erreur
    Par script73 dans le forum Scripts/Batch
    Réponses: 5
    Dernier message: 06/01/2012, 16h30
  2. Erreur script petites annonces
    Par seby83 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 6
    Dernier message: 25/11/2011, 18h05
  3. petite erreur dans le script
    Par naazih dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 11/05/2008, 14h13
  4. (Batch et VBS) Petit probléme avec un script batch VBS
    Par Edoxituz dans le forum Windows
    Réponses: 11
    Dernier message: 27/02/2006, 17h21
  5. Réponses: 7
    Dernier message: 15/03/2005, 14h44

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