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 :

Gérer les caractères spéciaux [Batch]


Sujet :

Scripts/Batch

  1. #1
    Membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2014
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2014
    Messages : 59
    Points : 61
    Points
    61
    Par défaut Gérer les caractères spéciaux
    Bonjour,

    J'ai un script qui parcourt un fichier texte et remplace un mot trouvé par un autre.

    Par exemple :
    Je cherche le contenu de la variable RECHERCHE et le remplacer par celle de PAYS.

    Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    @echo off
    setlocal enabledelayedexpansion
     
    set fichier=C:\batch\fichiers.txt
    set Result=C:\batch\Results.txt
    set "RECHERCHE=France pays Europe"
    set "PAYS=France IS MY COUNTRY"
     
    	for /f "tokens=1* delims=¶" %%A in ('"type !fichier!"') do (
    		set string=%%A
    		set modif=!string:%RECHERCHE%=%PAYS%!
    		echo !modif! >>%Result%	
    	)

    Le script en question fonction normalement.Par contre si je modifie mon fichier texte
    et mes variables comme ci-dessous:

    Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    set "RECHERCHE=% la '"France pays Europe"'"
    set "PAYS=France IS '"MY COUNTRY"'"

    le script ne fait rien. ma question est comment générer les caractères spéciaux ?

    Merci d'avance !

  2. #2
    Membre éclairé Avatar de devilsnake88
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2013
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2013
    Messages : 453
    Points : 809
    Points
    809
    Par défaut
    Citation Envoyé par PythonNovices Voir le message
    Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    set "RECHERCHE=% la '"France pays Europe"'"
    set "PAYS=France IS '"MY COUNTRY"'"
    Mes yeux me brûlent!

    Peux-tu nous donner le contenu d'un fichier texte qu'il faut changer avec tes nouvelles valeurs?
    ________________________________________________________________
    N'oublie pas de faire une sauvegarde avant d'exécuter des scripts...
    Si j'ai ton problème, un petit fait toujours plaisir!
    ________________________________________________________________

  3. #3
    Membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2014
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2014
    Messages : 59
    Points : 61
    Points
    61
    Par défaut
    Bonjour,

    Voici le contenu de mon fichier:

    % set la '"France pays Europe"'
    #####Europe######
    % set la '"Espagne pays Europe"'
    % set la '"Angleterre pays Europe"'
    % la '"France pays Europe"'
    #################
    % la '"Belgique pays Europe"'
    % la '"Suisse pays Europe"'
    #################
    % set la '"France pays Europe"'
    le but est de remplacer "
    % set la '"France pays Europe"'
    par
    et la '"France pays Europe"'
    dès qu'il le trouve dans une ligne.

    Cdt,

    PythonNovices

  4. #4
    Membre éclairé Avatar de devilsnake88
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2013
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2013
    Messages : 453
    Points : 809
    Points
    809
    Par défaut
    Ne serait-il pas plus simple de supprimer les caractères spéciaux et n'autoriser que les chiffres/lettres?
    ________________________________________________________________
    N'oublie pas de faire une sauvegarde avant d'exécuter des scripts...
    Si j'ai ton problème, un petit fait toujours plaisir!
    ________________________________________________________________

  5. #5
    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
    Une autre idée serait de définir des conditions un peu plus réaliste.

    Dans le genre :


    Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    @echo off
     
    set "$File=Ton_Fichier.txt"
     
    setlocal enabledelayedexpansion
     
    set "$c=1"
     
    for /f "delims=" %%a in ('type "%$File%"') do (
     echo %%a | find /i "France pays Europe" >nul && set $line=et la '"France pays Europe"'
     if defined $line echo Changer ligne : [!$c!] par [!$line!]
     set "$line="
     set /a $c+=1)

    On pourrait inclure ça dans une boucle avec toutes les conditions et mettre en sortie !$line!

    Il faut ruser même en programmation.....

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

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

Discussions similaires

  1. Gérer les caractères spéciaux
    Par MayOL69bg dans le forum Langage
    Réponses: 1
    Dernier message: 27/03/2007, 11h23
  2. [Requête VBA] Gèrer les caractères spéciaux comme [ ' ]
    Par snoopy69 dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 17/07/2006, 15h32
  3. [C#][ADO] Enlever les caractère spéciaux
    Par Oberown dans le forum Windows Forms
    Réponses: 3
    Dernier message: 10/01/2005, 18h38
  4. [Jsp] Supprimer les caractère spéciaux d'une chaine
    Par PeteMitchell dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 13/05/2004, 11h11
  5. Traiter les caractères spéciaux
    Par ricola dans le forum Langage
    Réponses: 2
    Dernier message: 20/02/2003, 09h23

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