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 :

Erreur de syntaxe for ?


Sujet :

Scripts/Batch

  1. #1
    Nouveau membre du Club Avatar de _PaTaTe_
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 23
    Points : 30
    Points
    30
    Par défaut Erreur de syntaxe for ?
    Bonjour,

    Je suis entrain d'écrire un script avec certains calculs mathématiques. Ce script étant un portage d'un scrpt bash Linux, j'ai voulu conservé le programme faisant ces calculs.

    Ce programme est bc. Il fonctionne très bien en ligne de commande comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    c:\>echo 2+5-3 | bc
    4
    C'est parfait !

    Maintenant si j'adapte ça dans un batch, c'est le drame !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for /f "delims=" %%A in ('echo 2+5-3 | bc') do set "result=%%A"
    Avec ceci j'ai l"erreur :

    Quelqu'un aurait une idée ?

    D'avance, merci
    .: PaTaTe :.

  2. #2
    Membre expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Points : 3 768
    Points
    3 768
    Par défaut
    Salut,

    bon si tu passes par un batch :

    Tu peux creer un fichier Myecho.bat

    myecho.bat

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    @echo off
    set /a Res=%*
    echo %res%
    Que tu lançeras de cettte manière : myecho.bat 3 + 4 -5

    OOu tu peux créer une variable myecho :

    myecho.bat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    @echo off
    set "myecho=set /a=$"
    Tu çlançes le bat 1 fois et ensuite si tu fais %myecho% 3+5-2 dans le CMD ça t'affichera le réulat.

    ________________________________
    Un p'tit coup de pouce ça fait toujours plaisir, pensez-y !
    ________________________________

  3. #3
    Nouveau membre du Club Avatar de _PaTaTe_
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 23
    Points : 30
    Points
    30
    Par défaut
    Le calcul était un exemple ^^

    J'ai besoin d'avoir l'addition, la soustraction, la multiplication et la division et ce, avec des nombres à virgules. Cette méthode ne fonctionne pas dans tous les cas malheureusement ...

    Merci quand même ^^
    .: PaTaTe :.

  4. #4
    Membre expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Points : 3 768
    Points
    3 768
    Par défaut
    Ok si il te faut des calculs en virgule flottante :

    calc.bat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    @echo off
    
    for /f "delims=" %%a in ('powershell "%~*"') do echo %%a
    Utilisation :

    calc.bat 2.45 * 3.67 /4.56

    Tu peux utiliser les () :

    calc.bat (2.33 + 3.78) * 1.22

    ________________________________
    Un p'tit coup de pouce ça fait toujours plaisir, pensez-y !
    ________________________________

  5. #5
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 183
    Points : 5 754
    Points
    5 754
    Par défaut
    Pour revenir au problème d'origine, il faut certainement échapper le caractère |

    Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
    for /f "delims=" %%A in ('echo 2+5-3 ^| bc') do set "result=%%A"

Discussions similaires

  1. [Débutante] erreur: invalid input syntax for integer
    Par naru40001 dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 29/08/2008, 11h43
  2. [Directives] Page blanche quand erreur de syntaxe
    Par syl2095 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 12
    Dernier message: 17/02/2006, 15h15
  3. erreur de syntaxe en C++
    Par sergepmessa dans le forum C++
    Réponses: 6
    Dernier message: 11/03/2005, 18h15
  4. PHP SQL =>erreur de syntaxe (operateur absent)
    Par snipes dans le forum Langage SQL
    Réponses: 3
    Dernier message: 23/02/2005, 14h09
  5. erreur de syntaxe javascript dans ma page
    Par Oluha dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 01/02/2005, 14h53

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