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 :

Aide sur erreur /F


Sujet :

Scripts/Batch

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2008
    Messages : 89
    Points : 56
    Points
    56
    Par défaut Aide sur erreur /F
    Bonjour,

    Voici le script :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    rem Boucle to replace "30" by " 0" in XXX.dat
    @for /F "tokens=1* delims=                          " %%i in (..\XXX.dat) do set myvar=%%i && call ..\scripts\script.bat
    le contenu de script.bat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    echo off
    rem set myvar=%myvar: 30=  0%
    set myvar=%myvar:                      30=                       0%
    echo %myvar% >> ..\TMP_XXX.dat
    La ligne du fichier qui pose problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    *EZXXX                      301  100030482007-01-012007-04-30     toto & van
    Il retourne un message d'erreur du genre : 'la commande VAN n'existe pas'
    Je suppose que c'est à cause du '&'. Avez-vous plus de précisions à ce sujet?
    Et surtout savez-vous comment faire pour qu'il reconnaise le caractère '&' comme un caractère banal?

    Merci.

    Carlozi

  2. #2
    Membre éprouvé
    Avatar de maxim_um
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 895
    Points : 1 018
    Points
    1 018
    Par défaut
    Salut,

    Citation Envoyé par Carlozi Voir le message
    comment faire pour qu'il reconnaise le caractère '&' comme un caractère banal?
    il suffit de faire précéder l'esperluette (&) par le symbole ^ tel que ceci : ^&

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2008
    Messages : 89
    Points : 56
    Points
    56
    Par défaut
    Ok. Merci pour votre réponse.

    Celà dit, si je comprends bien ce que vous me dites, il faudrait que je parcours le fichier d'entrée et à chaque fois que '&' est rencontré, je dois le remplacer par ^&. Correct?

    Si tel est le cas, avez-vous une solution pour agir directement dans le code?

    Merci.

    Carlozi.

  4. #4
    Membre éprouvé
    Avatar de maxim_um
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 895
    Points : 1 018
    Points
    1 018
    Par défaut
    Pour ta première question, la réponse est oui.
    Mais pour ta deuxième question, si tu pouvais la détailler, ce ne serait pas un luxe.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2008
    Messages : 89
    Points : 56
    Points
    56
    Par défaut
    Citation Envoyé par maxim_um Voir le message
    Pour ta première question, la réponse est oui..
    Ok, j'ai testé mais ça ne fonctionne pas : il met le même message d'erreur.

    Citation Envoyé par maxim_um Voir le message
    Mais pour ta deuxième question, si tu pouvais la détailler, ce ne serait pas un luxe.
    Désolé... En gros, modifier cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    @for /F "tokens=1* delims=                          " %%i in (..\XXX.dat) do set myvar=%%i && call ..\scripts\script.bat
    pour faire en sorte que s'il rencontre &, il fasse comme si c'était un caractère comme un "autre".

    Merci.

    Carlozi.

  6. #6
    Membre éprouvé
    Avatar de maxim_um
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 895
    Points : 1 018
    Points
    1 018
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ... do set myvar=%%i & call ..\scripts\script.bat
    Ce que tu me demandes est un peu contradictoire avec le bout de script que tu me présentes. Cela dit pour lancer ton "script.bat" il faut un seul «&», et dans ce contexte l'esperluette n'a rien d'un caractère banal.

    Cet exemple te permettra peut-être de saisir la différence:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    echo on affiche le et commercial: ^& & echo et on affiche une seconde ligne

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2008
    Messages : 89
    Points : 56
    Points
    56
    Par défaut
    J'ai bien compris que & signifie "et" . Il n'est pas nécessaire d'en mettre 2 effectivement. Ca ne m'a pas sauté aux yeux (c'est un bout de script que je reprends).

    Si je retrouve un '&' dans le fichier en entrée, c'est un hasard.

    Ajouter ^ devant le & dans le fichier en entrée ne permet pas d'éviter le message d'erreur lors de l'exécution du script.

    Cependant, rien de critique. Une raison fonctionnelle heureuse (et oui ça arrive) a permis d'éviter de traiter la partie du fichier contenant des '&'.

    Malgré tout, le mystère reste entier

    Merci pour votre aide.

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

Discussions similaires

  1. Aide sur erreur variable referenced before assignment
    Par steph70 dans le forum Tkinter
    Réponses: 8
    Dernier message: 15/10/2009, 08h16
  2. aide sur erreur de compilation
    Par dab29 dans le forum Visual Studio Team System
    Réponses: 4
    Dernier message: 07/08/2008, 18h32
  3. [ASA 9.0.1] Aide sur Erreurs fichier transaction
    Par init dans le forum SQL Anywhere
    Réponses: 0
    Dernier message: 05/01/2008, 18h31
  4. Besoin d'aide sur erreur sql
    Par stagos dans le forum Langage SQL
    Réponses: 2
    Dernier message: 21/11/2007, 11h47
  5. Réponses: 6
    Dernier message: 25/05/2007, 15h18

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