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 :

Aide sur un script pour remplacer les espaces et les caractères


Sujet :

Scripts/Batch

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Géomaticien
    Inscrit en
    Juillet 2013
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Géomaticien

    Informations forums :
    Inscription : Juillet 2013
    Messages : 48
    Points : 36
    Points
    36
    Par défaut Aide sur un script pour remplacer les espaces et les caractères
    Bonjour,

    Je suis tout à fait novice en batch. Je travaille sous W7 64 bits.

    Je souhaite remplacer tous les espaces de ma base de données par des "_" et tous les caractères "é" ou "è" par des "e". Ma base de données est caractérisée par une arborescence fichiers contenant des .tab ou .shp.

    ***********
    EDIT

    J'ai trouvé le script suivant sur le net pour régler le problème des espaces :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    @echo off
    setlocal enabledelayedexpansion
    for /R %%j in (*.*) do (
    set filename=%%~nj
    set filename=!filename:.=_!
    set filename=!filename: =_!
    if not "!filename!"=="%%~nj" ren "%%j" "!filename!%%~xj"
    )
    ça marche niquel

    Pour régler le problème des caractères, j'ai voulu rajouter deux lignes :

    set filename=!filename:é=e!
    set filename=!filename:è=e!

    Et là ça ne marche plus du tout...

    Pouvez-vous m'aider à débloquer ce script ?
    A+
    Merci

  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,

    Voici les 2 lignes que tu dois rajouter pour que cela fonctionne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    :::Par SachaDee
    :::www.bbat.forumeiros.com
    
    :::Pour le é
    set filename=!filename:‚=e!
    
    :::Pour le è
    set filename=!filename:Š=e!
    Attention fait un copié collé le premier caractère n'est
    pas une virgule !!!

    Amicalement

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

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Géomaticien
    Inscrit en
    Juillet 2013
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Géomaticien

    Informations forums :
    Inscription : Juillet 2013
    Messages : 48
    Points : 36
    Points
    36
    Par défaut
    Salut Sachadee, merci pour le tuyau.

    Cependant, j'ai testé sans succès. Le script remplace les espaces mais ne change pas les caractères.

    Je ne comprends pas trop la logique en fait.

    Ces deux lignes ressemblent comme deux gouttes d'eau à celles que j'avais d'abord tenté de rajouter avec é=e et è=e. Et pourquoi utiliser Š pour le è ?

    Merci,
    A+

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Géomaticien
    Inscrit en
    Juillet 2013
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Géomaticien

    Informations forums :
    Inscription : Juillet 2013
    Messages : 48
    Points : 36
    Points
    36
    Par défaut
    Ok, je me suis réveillé et j'ai fait le copier/coller plutôt que de recopier les lignes.

    ça marche, et je t'en remercie beaucoup, mais peux-tu me donner un ou deux éléments d'explications pour que je m'en sorte mieux pour la suite ?

    Quel est ce caractère si ça n'est pas une virgule ? Pourquoi utiliser ces caractères spéciaux pour remplacer les é ou è ?

    Merci encore, a+

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

    va dans la console (CMD) et écris ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    echo é è ç>test.txt
    ensuite ouvre le fichier test.txt avec notepad et regarde. tu va voir les carctères correspondant à ces lettres (relatif au code page que tu utilise)

    Pour plus de renseignement sur les codes pages

    http://fr.wikipedia.org/wiki/Page_de_code

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

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Géomaticien
    Inscrit en
    Juillet 2013
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Géomaticien

    Informations forums :
    Inscription : Juillet 2013
    Messages : 48
    Points : 36
    Points
    36
    Par défaut
    Et la lumière fut

    Bon ben ça avance, j'ai du travail à fournir, mais ça avance.

    Dernière petite question bête : savez-vous comment appliquer ce code aux noms de dossiers plutôt (et/ou?) qu'aux noms de fichiers ?

    Merci pour ces astuces.

    A+

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

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    @ech off
    for /f "delims=" %%a in ('dir /ad/b') do (echo %%a)
    et tu appliques tes substitution


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

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Géomaticien
    Inscrit en
    Juillet 2013
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Géomaticien

    Informations forums :
    Inscription : Juillet 2013
    Messages : 48
    Points : 36
    Points
    36
    Par défaut
    Salut Sachaade,

    Je rencontre un petit souci pour trouver le caractère & dans le cmd.

    Comme tu me l'a conseillé je fais echo & > test.txt mais là j'ai un message d'erreur qui me dit que la syntaxe n'est pas correcte.

    Du coup, je ne sais pas comment remplacer & dans mon code.

    Si tu as une idée je suis preneur
    a+ !

  9. #9
    Membre expérimenté Avatar de shkyo
    Homme Profil pro
    Développeur Robotique - Administrateur systèmes
    Inscrit en
    Juin 2003
    Messages
    841
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Robotique - Administrateur systèmes

    Informations forums :
    Inscription : Juin 2003
    Messages : 841
    Points : 1 474
    Points
    1 474
    Par défaut
    ça tombe bien, j'ai bataillé plusieurs heures hier pour ces histoires d'accents que la console n'accepte pas de base, voici ma solution:

    Quand tu codes ton .bat il faut remplacer les caractères accentués qui vont être envoyés à la console par leur code ALT+0xxx voici le tableau:
    à 0133
    â 0131
    ä 0132
    ç 0135
    è 0138
    é 0130
    ê 0136
    ë 0137
    î 0140
    ï 0139
    ô 0147
    ö 0148
    ù 0151
    û 0150
    ü 0129

    Et bien faire le ALT+0130 et non pas ALT+130 car sinon ça ne fonctionne pas!!
    Après ça marche nickel...
    L'homme sage apprend de ses erreurs, l'homme plus sage apprend des erreurs des autres. - Confucius -

    Ma (petite...) chaine Youtube : https://www.youtube.com/channel/UCy-...P2tH5UwOtLaYKw
    Si vous avez quelques minutes, passez donc voir mon site http://www.photospicsandco.fr/
    Envie de tee-shirts (et goodies!) originaux et sympa ? Visitez mon site... http://www.zazzle.com/shkyo30

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

    & étant un carctére spécial essaie de le substituer de cette manière :

    sinon effectivement tu auras une erreur.
    Attention cette technique ne fonctionne pas avec tous les carctéres spéciaux.
    (*,~) par exemple.
    ________________________________
    Un p'tit coup de pouce ça fait toujours plaisir, pensez-y !
    ________________________________

Discussions similaires

  1. [MSDN]Aide sur un exemple pour les boutons
    Par NicolasJolet dans le forum Windows
    Réponses: 4
    Dernier message: 01/08/2006, 10h41
  2. Réponses: 8
    Dernier message: 31/05/2006, 12h33
  3. Remplacement des espaces dans les valeur d'un tableau
    Par calimero642 dans le forum Langage
    Réponses: 10
    Dernier message: 12/05/2006, 18h56
  4. Besoin d'aide sur un script SQL de recherche
    Par agougeon dans le forum Langage SQL
    Réponses: 5
    Dernier message: 26/10/2005, 11h40

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