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 :

Ecrire variable=chiffre dans un fichier [Batch]


Sujet :

Scripts/Batch

  1. #1
    Rédacteur/Modérateur
    Avatar de NorocBzh
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Juin 2008
    Messages
    834
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur décisionnel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 834
    Points : 1 265
    Points
    1 265
    Par défaut Ecrire variable=chiffre dans un fichier
    Salut tout le monde,

    Il m'arrive un truc très étrange
    J'ai un batch qui génère un fichier.properties

    J'ai donc en code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    [...]
    echo # Génération dynamique du fichier properties>%FicProperties%
    echo action=export>>%FicProperties%
    echo Location=%FicLocation%>>%FicProperties%
    echo nombre=3>>%FicProperties%
    echo #Fin de génération du fichier de properties>>%FicProperties%
    Mon fichier généré est ok pour toutes les variables SAUF pour "nombre". Il ne me rentre pas la ligne dans mon fichier properties.
    En remplaçant "nombre=3" par "nombre=x", il me rentre bien la ligne ...
    En fait, dès que je met un chiffre seul après n'importe quelle variable, mon batch ne le prend pas en compte.

    Quelqu'un sait d'où ça peut venir ?
    Merci de votre aide !

  2. #2
    Rédacteur/Modérateur
    Avatar de NorocBzh
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Juin 2008
    Messages
    834
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur décisionnel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 834
    Points : 1 265
    Points
    1 265
    Par défaut
    De mieux en mieux
    Quand j'écris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo nombre=33>>%FicProperties%
    ça renseigne bien mon fichier .properties !
    Mais toujours pas quand j'écris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo nombre=3>>%FicProperties%
    Je comprends plus rien du tout

  3. #3
    Membre émérite 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 : 41
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 001
    Points : 2 453
    Points
    2 453
    Par défaut
    Ajoute simplement un espace entre le 3 et le >> et ça fonctionnera.

    Le 3> est interpreté comme une redirection de flux (comme en unix ou 2> est une redirection du flux d'erreur).
    Je ne réponds pas aux questions techniques par MP, le forum est là pour cela.

    La crypto c'est comme les flambys, une fois que tu as trouvé la languette tu as juste à tirer pour tout faire tomber.

    (\ _ /)
    (='.'=)
    Voici Lapinou. Aidez le à conquérir le monde
    (")-(") en le reproduisant

  4. #4
    Rédacteur/Modérateur
    Avatar de NorocBzh
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Juin 2008
    Messages
    834
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur décisionnel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 834
    Points : 1 265
    Points
    1 265
    Par défaut
    Salut et merci de ta réponse.

    Effectivement, cela fonctionne bien en ajoutant un espace après mon 3.
    Le problème, c'est que je ne dois pas avoir d'espace après mon 3 dans mon fichier properties. (Le fichier .properties est mal interprété du coup).

    Existe-t-il une autre solution pour effectuer cette manip ?

  5. #5
    Rédacteur/Modérateur
    Avatar de NorocBzh
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Juin 2008
    Messages
    834
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur décisionnel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 834
    Points : 1 265
    Points
    1 265
    Par défaut
    C'est bon, j'ai trouvé =)
    Cela fonctionne en mettant ^ devant mon 3.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo nombre=^3>>%FicProperties%
    Merci de ton aide

  6. #6
    Membre chevronné
    Avatar de I'm_HERE
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 013
    Points : 1 991
    Points
    1 991
    Par défaut
    salut

    pourquoi ça ne marche pas ?


    la réponse peux se porter sur 2 niveaux:

    1/ faire comprendre au processeur que la chaine est litteral donc ne pas l'interpréter.

    pour ceci on a plusieurs solutions:

    a/ echo nombre=^3>$FilePath
    --> On mets un caret avant le "3" ceci va faire comprendre aux processeur que le "3" est une partie de la chaine "nombre=" et non pas une partie du flux de redirection ">$FilePath"

    b/ (echo nombre=3)>$FilePath

    --> on utilise ici les parenthèses, qui ont un rôle de groupement de commandes, ainsi on securise tout ce qui est entre le bloc, mais attention il faut activer l'ERV pour que chaque commande soit executée et soit interprétée avant d'excuter la commande suivante par l'interpreteur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    (set i=3&echo nombre=%i%)>$FilePath
    echo %i%
    c/ >$FilePath echo nombre=3

    --> On mets notre redirection au debut de la ligne ainsi tout se qui sera à sa droite sera rediriger vers $FilePath,... mais attention cette formule risque de bugger si la commande à sa droite est précédée par le caractère '@'
    $FilePath @echo nombre=3

    d/ echo>$FilePath,nombre=3

    --> Ici aussi on change les positions de notre commande, la virgule "," est juste pour supprimer les espaces de plus

    e/ ...etc

    --> ...Rien n'est gratuits, tester de vous même

    2/ un 'problème' de flux special

    le flux 3 est un peux special en cmd.exe:

    ça peux aider à debugger ou bien à crée un "enregistrement" de tout ou partie de notre script

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        @echo 1>Nul 3>Nul off 
        echo test >con
        echo test
        pause
    ça peux aussi traiter les erreurs cas par cas mais aussi globalement:



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        @echo off 2>Nul 3>Nul
        je_ne_suis_pas_une_commande.exe 
        # je ne suis pas un commentaire valide
        echo hello   
        pause>Nul
    c'est un plus pour cmd.exe et ca peux aider dans certains cas...

    bon, j'espère que cette brêve explication est claire et va t'aider dans ton scripting

  7. #7
    Rédacteur/Modérateur
    Avatar de NorocBzh
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Juin 2008
    Messages
    834
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur décisionnel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 834
    Points : 1 265
    Points
    1 265
    Par défaut
    Citation Envoyé par I'm_HERE Voir le message
    bon, j'espère que cette brêve explication est claire et va t'aider dans ton scripting
    Merci beaucoup pour ces explications !

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 18/02/2014, 17h06
  2. Ecrire un objet dans un fichier
    Par mikebranque dans le forum C++
    Réponses: 3
    Dernier message: 14/03/2006, 13h39
  3. Réponses: 12
    Dernier message: 27/01/2006, 11h07
  4. Enregistrement d'une variable dynamique dans un fichier
    Par zarbydigital dans le forum Langage
    Réponses: 13
    Dernier message: 24/12/2005, 21h28
  5. Ecrire et lire dans un fichier texte
    Par podz dans le forum C
    Réponses: 3
    Dernier message: 25/10/2005, 16h57

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