Encodage d'un texte généré par Batch

Résolu/Fermé
EncodageDeFichiers - 27 août 2009 à 18:15
 EncodageDeFichiers - 31 août 2009 à 16:48
Bonjour,

Le sujet suivant (https://forums.commentcamarche.net/forum/affich-1512912-creer-un-fichier-batch-pr-ecrire-ds-un-txt explique bien la situation de base sous laquelle je suis (testé sous système Windows XP).

Partons d'un batch (appelons-le batchperso.cmd) contenant ce texte :
echo Création d'un fichier > monfichier.txt

Nota : je pars de l'hypothèse que .cmd et .bat sont une même extension aux mêmes effets. Si vous y voyez une différence, je suis curieux de savoir pourquoi. J'effectue ce paragraphe car j'ai déjà vu une préférence majoritaire pour le .bat alors que personnellement j'opte pour le .cmd

Je lance le batch, le fichier se crée. Comment peut-on savoir l'encodage de ce fichier ? A priori, au pif, je dirais ANSI (du fait de l'accent) mais si c'est le cas, à quelle norme d'ISO ?

J'ai trouvé quelques sites parlant d'encodages mais rien de significatif pouvant m'aiguiller : sauf une chose m'apprenant qu'on ne peut déterminer un encodage simplement en lorgnant sur un fichier texte puisque cela dépend beaucoup de l'éditeur de textes que l'on utilise (et de son paramétrage d'encodage par défaut).

Donc, du coup, il faut savoir l'encodage directement à la source. Mais je ne trouve aucune piste discutant de l'encodage généré à l'écriture. D'où ma première question ci-dessus.

Deuxième question : j'ai aussi un objet compilé que je peux appeler via ce batch (imaginons, soyons fou, un truc en Cobol). L'encodage du texte généré dépend-il de l'objet appelé ou de l'environnement du batch ?

Troisième et dernière question : sous nunux (Unix, Linux, etc), un shell générant du texte de la même manière produit quel encodage ?

Merci à toute réponse à forte consonnance professionelle (du fait des questions pointues). Non pas que je sois sectaire, bien au contraire, toute réponse me ravira et je vous en remercie par avance.

P.S. A chaque prévisualisation de mon message, le site me recoche la case de la configuration : c'est assez désagréable quand je choisis délibérément de préciser tout dans le mail et non par le biais d'une interface automatique récupérant des informations que j'efface et que je décoche.

Certes, ce n'est pas super-ultra confidentiel mais c'est rageant de voir une telle option : autant ne pas rendre ces champs modifiables et les imposer, cela aurait été plus judicieux !

Oh, et la case "recevoir par mail" se décoche.... Ah, j'en déduis sûrement une erreur sous FF2. Quand j'aurais du temps, je verrais avec un autre navigateur.
A voir également:

5 réponses

EncodageDeFichiers
31 août 2009 à 12:50
Bonjour,

Personne n'a d'idées ou une piste éventuelle ?

En vous remerciant.
0
Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 293
31 août 2009 à 13:19
bonjour, quelques réponses ... peut-être


il n' y a pas de différence entre .cmd et .bat ( microsoft a changé le .bat en .cmd parceque le noyeau d'exécution a été sordie de command.com (.bat) pour être placé dans cmd.exe mais c'est la même chose.

ansi ou ascii? iso? ben les deux ! Ce sont les normes pour un .cmd (environnement dos/win)
le charactère affiché dépend de son code ascii ( qui est aussi un code ansi) qui correspond à une norme iso.
pourquoi est-ce si compliqué? parceque le fabricant de clavier voudra mettre tel charactère à tel endroit car il est plus souvent utilisé dans tel pays... ( par exemple la Tildé "ñ" se retrouve avec la touche "^" pour une utilisation
plus ergonomique... d'où la norme.
pour connaître l'encodage d'un fichier texte (facile) le fichier doit contenir du texte dans une langue quelconque.
par rigueur on ajoute des retour à la ligne qui sont lus par les traitement de texte comme (Cr et LF ..retour chariot et ligne remplie)

3) quand un batch lance un applicatif fichier.exe ou fichier.com il peut générer ce qu'il veut.
ainsi l'applicatif ne dépend plus du batch mais du système.

4) sous unix/linux ... je dirais que s'est pareil avec une réserve pour éviter les bétises.
un shell produira toujours en sortie un code dépendant de son système.

je dirai pour finir qu'un tour sur wikipedia en tapant fichier texte donne plus de détails.
Bonne journée
0
EncodageDeFichiers
31 août 2009 à 16:03
Bonjour,

Si je résume, quelques points confirment mes soupçons. Je reprends mes questions et vos réponses :

1) Comment peut-on savoir l'encodage de ce fichier ? A (...) quelle norme d'ISO ?
L'encodage dépendrait donc de l'environnement utilisé. Si je vous comprends bien, le codage ASCII est un format de texte au même titre que ANSI ou UTF-8 ?

Par contre, je vous avoue que je ne vous suis pas du tout sur le terrain du clavier : imaginons que j'ai un serveur (ni souris ni clavier) accessible à distance et générant le fichier. Si je lis le fichier, il s'affichera suivant les paramètres du serveur, pas ceux dépendants de mon clavier. Le format d'un texte ne dépend pas du clavier.

Par contre, la piste du <<texte dans une langue quelconque>>, là, c'est utile : les paramètres régionaux de l'ordinateur entrent-ils en compte ? Je vois dans les options régionales et linguistiques (paramètres de configuration), onglet "Options Avancées", une énonciation du mot Unicode, donc dans la problématique de ces formats. J'aurais tendance à dire que le jeu de caractères vient bien de là, par défaut. J'ai un 10000 MAC (romain)

2) L'encodage du texte généré dépend-il de l'objet appelé ou de l'environnement du batch ?
<<quand un batch lance un applicatif fichier.exe ou fichier.com il peut générer ce qu'il veut.>> Je comprends donc que le code du texte généré dépend de l'environement de l'objet : s'il n'en a pas, je suppose qu'on prendra celui du système.

3) sous nunux (Unix, Linux, etc), un shell générant du texte de la même manière produit quel encodage ?
<<un shell produira toujours en sortie un code dépendant de son système.>>
Ce qui confirme mon idée sur le deuxième point ci-dessus.

Sur Wikipedia, on trouve pas mal d'infos à partir de 'Unicode'. Effectivement, un point d'entrée sur 'fichier texte' donne d'autres pistes comme 'Codage de caractères'.

Merci Bidouilleu_R, pour ces quelques lignes.
0
Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 293
31 août 2009 à 16:14
si je reprends vos réponses... : )

1) Comment peut-on savoir l'encodage de ce fichier ? A (...) quelle norme d'ISO ?
L'encodage dépendrait donc de l'environnement utilisé. oui Si je vous comprends bien, le codage ASCII est un format de texte au même titre que ANSI ou UTF-8 ? oui

Par contre, je vous avoue que je ne vous suis pas du tout sur le terrain du clavier ( me suis mal exprimé): imaginons que j'ai un serveur (ni souris ni clavier) accessible à distance et générant le fichier. Si je lis le fichier, il s'affichera suivant les paramètres du serveur, ( oui oui c'est ça ) pas ceux dépendants de mon clavier ( exact). Le format d'un texte ne dépend pas du clavier.
dans un environnement (dos / win) : ce que l'on affiche dépend à la base du clavier (le driver du clavier interpretra le scancode pour lui faire correspondre son code ascii . il en est de même pour l'affichage.
en fait par ce moyen on peut changer l'affectation du scancode avec son code correspondant.



Par contre, la piste du <<texte dans une langue quelconque>>, là, c'est utile : les paramètres régionaux de l'ordinateur entrent-ils en compte ? Je vois dans les options régionales et linguistiques (paramètres de configuration), onglet "Options Avancées", une énonciation du mot Unicode, donc dans la problématique de ces formats. J'aurais tendance à dire que le jeu de caractères vient bien de là, par défaut. J'ai un 10000 MAC (romain) là j'ai pas regardé....

2) L'encodage du texte généré dépend-il de l'objet appelé ou de l'environnement du batch ?
<<quand un batch lance un applicatif fichier.exe ou fichier.com il peut générer ce qu'il veut.>> Je comprends donc que le code du texte généré dépend de l'environement de l'objet : s'il n'en a pas, je suppose qu'on prendra celui du système. c'est ça!

3) sous nunux (Unix, Linux, etc), un shell générant du texte de la même manière produit quel encodage ?
<<un shell produira toujours en sortie un code dépendant de son système.>>
Ce qui confirme mon idée sur le deuxième point ci-dessus. la mienne aussi ouf !

Sur Wikipedia, on trouve pas mal d'infos à partir de 'Unicode'. Effectivement, un point d'entrée sur 'fichier texte' donne d'autres pistes comme 'Codage de caractères'.

Merci Bidouilleu_R, pour ces quelques lignes.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
EncodageDeFichiers
31 août 2009 à 16:48
Je vous remercie.

Il me semble que les sujets peuvent se passer en mode "résolu". Mais souci de l'utilisateur anonyme...
Si un gentil modérateur (peu de chance car réputés pour avoir une image de personnes sadiques :p) passe par ici et qu'il a le pouvoir de le faire, ce serait sympathique (et je l'en remercie).

C'est que c'est ça d'oublier son login pour tracer correctement un topic propre...
Bonne journée/soirée à tous.
0