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 :

[Batch] Modifier les valeurs négatives


Sujet :

Scripts/Batch

  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2
    Par défaut [Batch] Modifier les valeurs négatives
    bonjour,

    Je dois réaliser un script de suivi de production sous dos...(Windows 2000 server)

    à l'aide des commandes awk (le awk sous cygwin...) j'ai formater un fichier de la manière suivante :

    xxxxx xxxxxx xxxxxx xxxxxxx 156
    xxxxx xxxxxx xxxxxx xxxxxxx -35
    xxxxx xxxxxx xxxxxx xxxxxxx 0
    xxxxx xxxxxx xxxxxx xxxxxxx 0
    xxxxx xxxxxx xxxxxx xxxxxxx 100
    xxxxx xxxxxx xxxxxx xxxxxxx -25
    xxxxx xxxxxx xxxxxx xxxxxxx 12


    Est je désire remplacer chaque valeur négative par cette meme valeur à laquelle on rajouterai 1440
    Je debute en Dos et je vous remercie de votre aide.

  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
    Bonjour,

    Voila la démarche à adopter :

    Boucle for sur les lignes de ton fichier avec espace comme délimiteur.
    Tu récupères tous les tokens.
    Dans chaque itération du for tu récupères le 5eme token que tu mets dans une variable + 1440 avec set /a v_nb=%%e+1440
    Tu ajoutes ta lignes modifiée dans le fichier destination que tu es en train de construire : echo %%a %%b %%c %%d !v_nb! >> nom_fichier

    N'oublies pas d'activer les expansions retardées de variables.

  3. #3
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2
    Par défaut
    dans ces cas la toutes les valeurs de la derniére colonne risque d'etre majoré de 1440, je cherche juste à ajouter 1440 aux valeur négative !

  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
    Oui autant pour moi, je suis allé un peu vite, tu as juste à ajouter un test avant d'effectuer l'addition.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if %%e GEQ 0 (
       set /a v_nb=%%e
    ) else (
       set /a v_nb=%%e+1440
    )

  5. #5
    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
    Voila.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    @echo off
    
    setlocal enableExtensions
    setlocal ENABLEDELAYEDEXPANSION
    
    if exist result.txt del result.txt
    for /F "tokens=1,2,3,4,* delims= " %%a in (test.txt) do (
        set /a v_nb=%%e
        if !v_nb! LSS 0 set /a v_nb=!v_nb!+1440
        echo %%a %%b %%c %%d !v_nb! >> result.txt
    )

Discussions similaires

  1. fonction qui modifie les valeurs de combos <select>
    Par NicoO_O dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 16/05/2007, 13h02
  2. Réponses: 4
    Dernier message: 23/04/2007, 12h01
  3. modifier les valeurs de champ
    Par stoyak dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 15/11/2006, 11h18
  4. Lire un fichier Excel pour modifier les valeurs des cellules
    Par Paloma dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 31/10/2006, 15h13
  5. [JTable]Modifier les valeurs en temps réel
    Par yoshï dans le forum Composants
    Réponses: 11
    Dernier message: 02/06/2006, 17h11

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