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 :

probleme avec commande SET et la suppression d'une chaine [Batch]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 42
    Par défaut probleme avec commande SET et la suppression d'une chaine
    Bonjour,

    Pourquoi la ligne set TOTO=%TOTO:Impr=% ne fonctionne pas dans le code Suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    set JCD_FIC_TMP=c:\temp\choix_imp.txt
    for /F "tokens=1 delims=," %%i in ('more %JCD_FIC_TMP%') do (
    set TOTO=%%i
    set TOTO=%TOTO:Impr=%
    set TOTO)
    Je souhaite retrouver dans la variable toto que le nom de l'imprimante sans IMPR a la fin.

    avec le fichier c:\temp\choix_imp.txt suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    "Veuillez choisir votre imprimantes" 
    IMPRIMANTE[1]=CANONDAF couleur  Impr 
    IMPRIMANTE[2]=CANONDAF NB       Impr 
    IMPRIMANTE[3]=CANONSCO          Impr 
    IMPRIMANTE[4]=CANONSCO 
    IMPRIMANTE[5]=COMPTA            Impr 
    IMPRIMANTE[6]=COPIEURR          Impr 
    IMPRIMANTE[7]=FAX               Impr 
    IMPRIMANTE[8]=JURID2            Impr
    merci pour vos explication ?

    en mode BATCH avec Windows XP SP3

  2. #2
    Membre Expert Avatar de Drizzt [Drone38]
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2004
    Messages
    1 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 001
    Par défaut
    PARCEQUE !!!!!!

    (Marre de répéter toujours la même chose).

    Ca sent le gros copier coller de code sans chercher à le comprendre ça je me trompe ? Parceque le delims=, étant donné qu'il n'y a aucune virgule dans ton fichier il est pas évident à sortir
    .
    Change tes delims et tokens et tu n'auras même pas à chercher la solution à pourquoi ta substitution ne fonctionne pas.

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 42
    Par défaut
    Bonjour,

    Non, ce n'est pas une vulgaire copie d'un code que je n'aurais pas compris,

    le fichier provient de la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    rem on recherche les imprimantes
    set /a NB_IMP=0
    for /F "tokens=1 delims=." %%i in ('net view \\%JCD_NOM_SERVEUR%^|find "Impr."') do (
    set /a NB_IMP+=1
    set IMPRIMANTE[!NB_IMP!]=%%i )
    Et en plus avant de poster j'ai consulter pas mal de messages et changer plusieurs fois les delims (impossible de mettre un espace car le nom des imprimante peux avoir un espace) (simple espace, Avec le I de Impr (mais dans ce cas là, il enlever aussi les i des nom des imprimantes)).

    PS : je ne suis peut-être pas un habitué du forum en posant plein de questions, car en général je trouve la réponse dans les messages.

    Sur ceux, peux tu me dire comment, dans ce cas, je peux récupérer le nom de mes imprimantes ?

    Par avance merci

  4. #4
    Membre Expert Avatar de Drizzt [Drone38]
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2004
    Messages
    1 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 001
    Par défaut
    Effectivement si tu as des espaces dans le nom c'est plus génant pour les delims.

    Regarde set /? en détail et tu comprendras pourquoi ta substitution ne fonctionne pas. Il y a même un bel exemple.

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 42
    Par défaut
    Bonjour,

    plutot que supprimer IMPR j'ai essayer ceci
    à la place de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    set TOTO=%TOTO:Impr=%
    j'ai mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    set TOTO=%TOTO:~0,-4%
    pour récupere toutes la ligne sauf les 4 derniers caractères, mais cela reste sans effet.

    peut-être que ma formulation n'est pas correct ?

    encore merci de votre participation.

  6. #6
    Membre Expert Avatar de Drizzt [Drone38]
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2004
    Messages
    1 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 001
    Par défaut
    Citation Envoyé par Drizzt [Drone38] Voir le message
    Regarde set /? en détail et tu comprendras pourquoi ta substitution ne fonctionne pas. Il y a même un bel exemple.

  7. #7
    Membre Expert
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Par défaut
    Salut,

    Citation Envoyé par jcderchain Voir le message
    le nom des imprimante peux avoir un espace
    C'est pas bon ça. On ne doit pas mettre d'espace dans les noms de partage, et si tu veux encore être plus large en compatibilité, il ne doit pas y avoir plus de 8 lettres dans ces noms. Parles-en à ton admin, c'est très simple de rectifier ça.

    Outre cette parenthèse, ton problème de fond a effectivement été traité des milliers de fois. Tiens, au pif, enfin presque, et il y a aussi l'extrait de l'aide en ligne de set dont Drizzt [Drone38] parle. D'ailleurs je sais pas ce qui lui a pris de répondre Moi non plus d'ailleurs

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

Discussions similaires

  1. Probleme avec commande DOS
    Par spectre3brad dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 07/05/2008, 12h53
  2. probleme avec commande wc -l
    Par pseudobidon57 dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 14/09/2007, 16h28
  3. [Oracle] probleme avec commande UPDATE
    Par edw0000d dans le forum Langage SQL
    Réponses: 1
    Dernier message: 30/01/2007, 18h19
  4. [VB6] Probleme avec commande SHELL
    Par Oseval dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 04/08/2006, 17h13
  5. [langage] Probleme avec commande system et code
    Par Ludo167 dans le forum Langage
    Réponses: 3
    Dernier message: 14/07/2004, 12h01

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