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 :

Problème avec caractère ! lors d'une lecture de fichier pour extraction [Batch]


Sujet :

Scripts/Batch

  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juin 2006
    Messages
    622
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 622
    Points : 156
    Points
    156
    Par défaut Problème avec caractère ! lors d'une lecture de fichier pour extraction
    Bonjour,

    Voici un petit code à titre d'exemple qui permet de lire le contenu des lignes dans un fichier test.txt que voici et d'extraire ces valeurs dans un nouveau fichier SORTIE.TXT (bien sûr présenté comme ça ça n'a aucun intérêt mais c'est pour simplifier la chose )

    Fichier test.txt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    654a789a123;;iu!!
    kjdfhsdkjfh
    sodà@ifjsdlkfjsdléaz
    spdofkjsd!!lfkj


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    chcp 1252
    SETLOCAL ENABLEDELAYEDEXPANSION 
    FOR /F "delims=" %%i IN (test.txt) DO (
    	SET val=%%i
    	ECHO !val! >> SORTIE.TXT
    )


    En fait, les valeurs sont bien extraites, mais pas les points d'exclamations... alors que les autres caractères spéciaux le sont bien !!


    j'ai essayé avec ou sans la commande chcp 1252... mais ça ne change rien...


    Des idées ?

    Merci

    @++
    Dams'

  2. #2
    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,

    c'est un problème récurrent: si on active l'expansion retardé de variables le caractère '!' devient un caractère spécial, alors on doit l'échapper par un/des carets '^' si on veux l'utiliser littéralement ou bien activer l'expansion retardée de variable après l'affectation de la variable pour que le caractère '!' soit traiter par le parseur dans le contexte de l'expansion normal au lieu de l'expansion retardé dans le but qu'il soit traiter comme un simple caractère au lieu d'un caractère reservé (donc à echapper).


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    FOR /F "delims=" %%i IN (thefile.txt) DO (
      Set val=%%i
      SETLOCAL ENABLEDELAYEDEXPANSION 
      echo !val!
      endlocal
    )
    ensuite si tu veux diriger le flux de sortie vers un fichier il vaut mieux encapsuler le tout dans un seul bloc:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    (
    FOR /F "delims=" %%i IN (thefile.txt) DO (
      Set val=%%i
      SETLOCAL ENABLEDELAYEDEXPANSION 
      echo !val!
      endlocal
    )
    ) > sortie.txt

  3. #3
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juin 2006
    Messages
    622
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 622
    Points : 156
    Points
    156
    Par défaut
    parfait ça marche.
    un grand merci

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

Discussions similaires

  1. Ignorer des caractères lors d'une lecture fichier
    Par Inaky dans le forum Langage
    Réponses: 9
    Dernier message: 06/11/2011, 15h25
  2. [XL-2003] Problème avec Find lors d'une éxécution automatique
    Par gentyjp dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 27/10/2010, 10h05
  3. [PHP 5.3] Perte de caractères lors d'une lecture de fichier
    Par Vince57 dans le forum Langage
    Réponses: 2
    Dernier message: 28/08/2010, 19h03
  4. Problème de split lors d'une lecture d'un fichier csv
    Par Mawinette dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 25/03/2009, 11h48
  5. Problème avec py2exe lors d'une migration 2.4 -> 2.6
    Par peterphonic dans le forum Py2exe
    Réponses: 1
    Dernier message: 28/01/2009, 15h38

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