Téléchargement
illégal
Posez votre question Signaler

Console windows, redirection et encodage

dominic999 3Messages postés 13 octobre 2009Date d'inscription 16 janvier 2012Dernière intervention - Dernière réponse le 15 oct. 2009 à 16:14
Bonjour,
Je désire faire une redirection, depuis le shell de Windows XP, dans un fichier texte (simplement tree > tree.txt). Toutefois, l'encodage utilisé pour le fichier texte généré n'est reconnu par aucun des éditeurs que j'ai essayés. Le contenu (output) généré ressemble à ceci:
Le num‚ro de s‚rie du volume est 7C92C22C C0FE:C051
F:.
ÃÄÄÄAnalyses_statistiques
ÃÄÄÄAnnie
³ ÀÄÄÄPr‚sentations
ÃÄÄÄBenoit
³ ÀÄÄÄUdeM
La commande chcp m'a permis de voir que l'encodage utilisé était "850" (quelle idée!?), et j'ai pu récupérer le tout depuis une console Python. Mais il doit y avoir un moyen plus simple? Peut-on forcer un type d'encodage différent?
J'ai essayé d'ajouter le paramètre /u à la commande cmd pour utiliser le unicode. Toutefois, la commande chcp donne toujours "850". Des idées?
Merci à l'avance
Lire la suite 

Console windows, redirection et encodage »

1 réponses
Réponse
+0
moins plus
Je poste ici ma propre solution Python.

def redirectionCommandeDos(command=None):
    if command==None:
        command = raw_input(r"Entrer ici la commande DOS (ex: tree c:\)")
    process = subprocess.Popen(command, stdout=subprocess.PIPE, shell=True)
    output = process.stdout.read().strip().decode("850")
    print output


Une variante utilisant l'indispensable module easygui:

def redirectionCommandeDos(command=None):
    if command==None:
        command = easygui.enterbox(r"Entrer ici la commande DOS (ex: tree c:\)")
    process = subprocess.Popen(command, stdout=subprocess.PIPE, shell=True)
    output = process.stdout.read().strip().decode("850")
    easygui.textbox(text=output.replace('\r\n','\n')
Ajouter un commentaire
Ce document intitulé « Console windows, redirection et encodage » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?