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 :

Modifier une chaine de caractères [Batch]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2014
    Messages
    744
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2014
    Messages : 744
    Par défaut Modifier une chaine de caractères
    Bonjour.

    Je pensais avoir compris mais je n'ai rien compris du tout.
    J'ai un fichier %PLversion_dev% dont je veux parcourir les lignes pour chercher la valeur %versionOld% puis :
    -copier la ligne initiale si la valeur n'est pas trouvée
    -copier la ligne en remplaçant %version% par %versionOld% si la valeur est trouvée.

    dans un premier temps, j'essaie simplement de copier toutes les lignes du fichier %PLversion_dev% dans le fichier %PLversionREMtmp%.
    Mon script ne me copie que la dernière ligne à chaque boucle, ce n'est pas ce que je veux.
    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if exist %PLversionREMtmp% del %PLversionREMtmp%
    for /f "usebackq delims=" %%A in ("%PLversion_dev%") do (
     
    			set "ligneREM=%%A"
    			echo %ligneREM% >> %PLversionREMtmp%
     
    		)

  2. #2
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2014
    Messages
    744
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2014
    Messages : 744
    Par défaut
    OK, premiere partie réglée, je continue.

    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if exist %PLversionREMtmp% del %PLversionREMtmp%
    for /f "usebackq delims=" %%A in ("%PLversion_dev%") do (
     
    			echo.%%A >> %PLversionREMtmp%
     
    		)

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2014
    Messages
    744
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2014
    Messages : 744
    Par défaut
    Je merdouille.

    Je parcours les lignes de mon fichier : OK

    Pour chacune des lignes, je veux :
    1-Tester si une chaine de caractères est présente
    2-Si elle est présente, remplacer cette chaine par une autre et insérer la ligne modifier dans un fichier
    3-Si elle est absente, insérer la ligne lue sans modification dans le fichier.

    Je n'arrive pas à faire mon test ni modifier ma ligne.

    Que contient le %%A ?
    Comment avoir sa (ses) valeurs, numéro de ligne valeur de la ligne, etc?
    Comment mettre la valeur de cette ligne dans une autre variable ?


    Pouvez vous m'aider ?

  4. #4
    Membre émérite
    Homme Profil pro
    Développeur .NET en devenir
    Inscrit en
    Août 2017
    Messages
    549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET en devenir
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2017
    Messages : 549
    Par défaut
    %%A contient la première ligne de ton fichier, puis la suivante, ainsi de suite.

    Tu peux mettre %%A dans une autre variable, mais si celle-ci est définie à l'intérieur d'un bloc alors il faut la retarder.

  5. #5
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2014
    Messages
    744
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2014
    Messages : 744
    Par défaut
    Oui mais là, je n'ai pas encore compris comment faire :
    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for /f "usebackq" %%A in ('type "%PLversion_dev%"') do (
     
    set "strl=%%A"
     
    echo !str1! >> %logs%
    renvoie
    !str1!
    Et aprés pour faire mon
    IF la chaine de caracteres est dans ma ligne
    je modifie la ligne et je l'écris dans mon fichier
    ELSE
    Je copie simplement la ligne dans mon fichier.

    Là je meurs.

  6. #6
    Membre émérite
    Homme Profil pro
    Développeur .NET en devenir
    Inscrit en
    Août 2017
    Messages
    549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET en devenir
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2017
    Messages : 549
    Par défaut
    C'est bien tu as entouré ta variable avec des points d'exclamation mais tu n'as pas activé l'expansion retardée :
    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    setlocal enabledelayedexpansion

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

Discussions similaires

  1. Réponses: 12
    Dernier message: 11/06/2012, 19h14
  2. Modifier une chaine de caractère
    Par sulli7086 dans le forum Excel
    Réponses: 6
    Dernier message: 18/02/2010, 09h56
  3. Fonction qui modifie une chaine de caractère
    Par condor_01 dans le forum Débuter
    Réponses: 7
    Dernier message: 05/11/2007, 18h32
  4. Modifier une chaine de caractères lue dans une DB
    Par shinryu69 dans le forum Langage
    Réponses: 4
    Dernier message: 31/10/2006, 13h40
  5. Modifier une chaine de caractères ?
    Par Arkadius dans le forum Oracle
    Réponses: 2
    Dernier message: 13/04/2006, 16h21

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