Console windows, redirection et encodage
dominic999
Messages postés
3
Statut
Membre
-
dominic999 Messages postés 3 Statut Membre -
dominic999 Messages postés 3 Statut Membre -
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
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
A voir également:
- Console windows, redirection et encodage
- Clé d'activation windows 10 - Guide
- Montage video gratuit windows - Guide
- Windows ne démarre pas - Guide
- Windows movie maker - Télécharger - Montage & Édition
- Restauration systeme windows 10 - Guide
1 réponse
Je poste ici ma propre solution Python.
Une variante utilisant l'indispensable module easygui:
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')