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

Windows Discussion :

[Batch NT]Pb de page de code


Sujet :

Windows

  1. #1
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut [Batch NT]Pb de page de code
    Bonjour,
    dans la batch suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    @echo off
     rem saisie dans la console par copy con ...
     rem la visu donne "set Path1=D:\VSS\Documents g,n,raux"
    set Path1=D:\VSS\Documents g‚n‚raux
    
     rem saisie dans UltraEdit ou un autre éditeur Ascii
    Path2=D:\VSS\Documents généraux
    
     rem affichage OK
    echo %Path1%
    cd %Path1%
    
     rem affichage NOK
    echo %Path2%
    cd %Path2%
    je rencontre le pb suivant :
    C:\TEMP>echo D:\VSS\Documents généraux
    D:\VSS\Documents généraux

    C:\TEMP>cd D:\VSS\Documents généraux

    C:\TEMP>echo D:\VSS\Documents gÚnÚraux
    D:\VSS\Documents gÚnÚraux

    C:\TEMP>cd D:\VSS\Documents gÚnÚraux
    Le chemin d'accès spécifié est introuvable.
    QQ as-t-il une idée pour régler ce pb, ie correspondance de la page de code d'un éditeur avec celle de la console et ce en natif si possible.

    Sous W2K sp4 FR

    Config.NT :
    dos=high, umb
    device=%SystemRoot%\system32\himem.sys
    files=40

    Merci

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 62
    Points : 66
    Points
    66
    Par défaut
    sa doit etre tout simplement l'espace dans le nom de ton repertoire et/ou le caractère "é"

    essai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Path2=D:\VSS\"Documents generaux"
    en renoment ton dossier sans les "é"

    Arnaud

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 77
    Points : 83
    Points
    83
    Par défaut
    peut etre la commande codepage= dans config.sys ou chcp

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2003
    Messages : 65
    Points : 73
    Points
    73
    Par défaut
    Si c'est possible, la solution facile est de ne pas utiliser de caractères accentués dans les batchs. Ce n'est évidemment pas toujours possible :-(

    On peut aussi utiliser un éditeur qui fonctionne en mode console. Dans ce cas, la page de codes utilisée sera celle de la console et le problème de compatibilité est éliminé. Mais on aime bien utiliser son éditeur préféré :-(

    Comme les caractères accentués sont rares, on peut inscrire dans le texte les codes de la page de destination. Il faut d'abord se trouver une page de codes appropriée, comme celle-ci pour la page 850. Il faut ensuite repérer le caractère voulu puis son numéro de code (le numéro du coin supérieur droit dans cet exemple).

    Pour entrer ce numéro dans le texte (par exemple 130 pour un é), il faut tenir la touche ALT pressée puis taper ce numéro précédé d'un zéro sur le pavé numérique à la droite du clavier (donc 0130 pour un é), puis relâcher la touche ALT. Il s'écrira un caractère bizarre, mais ce sera un é en mode console.

    Une autre solution encore (s'il y a beaucoup de caractères accentués) est d'écrire le texte normalement puis de le passer dans un filtre qui convertira les caractères.

    J'utilise EditPlus qui permet d'intégrer un tel filtre dans les outils. Je ne sais pas si UltraEdit permet les filtres, mais voici le petit programme que j'ai écrit en C pour faire le travail:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    #include <stdio.h>
    
    #define STRICT
    #define WIN32_LEAN_AND_MEAN
    #include <windows.h>
    
    // -----------------------------------------------------------------------
    #define GRANDEUR_BUFFER 8192
    
    // -----------------------------------------------------------------------
    int main&#40;int argc, char *argv&#91;&#93;&#41;
    &#123;
    char        buffer&#91;GRANDEUR_BUFFER&#93;;
    size_t      nbr;
    
    
    while &#40;1&#41; &#123;
        // Lire un buffer de données
        nbr = fread&#40;buffer, 1, GRANDEUR_BUFFER, stdin&#41;;
        if &#40;!nbr&#41;  break;
        
        // Convertir les données
        CharToOemBuff&#40;buffer, buffer, nbr&#41;;
        
        // Écrire les données
        fwrite&#40;buffer, 1, nbr, stdout&#41;;
        
        // Si le buffer n'était pas plein c'est qu'on a atteint la fin
        if &#40;nbr < GRANDEUR_BUFFER&#41;  break;
    &#125;
    
    return 0;
    
    &#125;
    
    // -----------------------------------------------------------------------
    Évidemment, il doit être compilé pour être utilisé et ne comprend aucune garantie d'aucune sorte.

    Il y a aussi l'éditeur Boxer qui possède une fonction pour faire la conversion. Peut-être UltraEdit offre-t-il la même fonctionnalité? Vois l'aide avec le mot clé "OEM".

  5. #5
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par abignon
    en renoment ton dossier sans les "é"
    Ce n'est pas possible chez le client.

    Citation Envoyé par bjousse
    peut etre la commande codepage= dans config.sys ou chcp
    J'ai essayé et cela ne change rien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mode con cp select=437 ....
    Citation Envoyé par axile
    Une autre solution encore (s'il y a beaucoup de caractères accentués) est d'écrire le texte normalement puis de le passer dans un filtre qui convertira les caractères.
    C'est ce que je vais faire.
    Effectivement aprés qq recherches à prioris les applications GUI et console utilisent la même page de code mais pas la même table de conversion.
    Je vais regarder le détail des F° OEM vers ANSI et inversement.

    Merci pour vos réponses.

  6. #6
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 161
    Points : 185
    Points
    185
    Par défaut
    Super le coup du Alt + 0130, ça m'a bien aidé, merci

  7. #7
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 752
    Points : 10 683
    Points
    10 683
    Billets dans le blog
    3
    Par défaut
    La solution du pauvre c'est d'éditer et corriger son script sous EDIT de DOS.

  8. #8
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 161
    Points : 185
    Points
    185
    Par défaut
    Ah oui c'est vrai, bonne idée.

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

Discussions similaires

  1. Page de code
    Par akli_agha dans le forum Bases de données
    Réponses: 2
    Dernier message: 01/06/2006, 10h19
  2. Changer la page de code par défaut de l'invite de commande
    Par guipom dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 06/04/2006, 11h06
  3. [EDI] Logiciel pour mettre en page du code PHP
    Par Metallic-84s dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 24/03/2006, 13h16
  4. WideCharToMultiByte et page de code pb
    Par ecuyer dans le forum Windows
    Réponses: 2
    Dernier message: 24/11/2005, 14h13

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