(modifié le 12 février 2015 à 16:52)

But : convertir les caractères spéciaux au format reconnu par DOS (encodage CP850)

Note : si vous cherchez comment échapper les caractères spéciaux, consultez cette page.

Si vous écrivez un script batch (.bat) par exemple sous Notepad, vous vous rendrez vite compte que les caractères spéciaux ne sont pas reconnus sous DOS. Ou plutôt ils sont acceptés en tant qu'autre caractère, ce qui peut-être plutôt génant.

Certains me diront : "pffff DOS, on s'en sert plus, et puis sous Windows XP y'a même plus de DOS, il est émulé !". Oui mais il peut être très utile de créer des scripts (démarrage par exemple, autorun...), je pene notamment aux administrateurs réseaux qui ont la "chance" de travailler sur un système d'exploitation Microsoft.

Il existe deux techniques pour se faire comprendre par DOS. La première consiste a utiliser l'éditeur DOS (qui fonctionne lui même à partir de DOS). Il n'est par contre pas très pratique, ni esthétique ! Pour le tester : Menu démarrer > exécuter > "edit" puis OK

Vous tombez donc sur l'éditeur (Edit.com) avec son bel écran bleu, ahh quelle nostalgie hein (la touche alt+flèches du clavier permet d'accéder au menu) :

Editeur DOS
Démonstration de l'éditeur DOS : Edit.com

Vous en conviendrez, la souris est quand même plus pratique pour éditer un script, bien que Edit.com fonctionne très bien 🙂

Deuxième méthode : avec Wordpad : Ménu Démarrer > exécuter > Wordpad puis OK (vous le trouverez également dans les Accessoires Windows). Entrez votre script, voici un exemple :

rem désactivation de l'affichage des commandes
@echo off
rem nettoyage de l'écran
cls
rem saut de ligne
echo.
rem affichage du titre
echo Accents : à é è
echo.
pause


puis faites "Fichier > Enregistrer sous" et sélectionnez "Document texte MS-DOS" comme type :

Sauvegarde au format DOS sous Wordpad
Cliquez ensuite sur Enregistrer

Puis Wordpad vous indique que l'endodage va être modifié, cliquez sur oui :

Sauvegarde au format DOS sous Wordpad - alerte

Exécutons notre fichier batch :

Lancement du fichier batch

Comme vous pouvez le voir les accents sont affichés correctement. Si cette manipulation n'avait pas été faite, DOS lirait de manière incorrecte les accents. Pour mieux comprendre, voici ce que cela donnerait :

Lancement du fichier batch sans la conversion de Wordpad

Attention : certaines bordures d'encadrement sous DOS sont composées d'accent et seront également converties avec Wordpad, il faut donc les ajouter après cette converion en éditant votre script en texte pur, avec Notepad par exemple.

Si vous ne souhaitez pas vous embêter avec tout ça, un logiciel gratuit (pour une utilisation non commerciale) crée par la societé Astase, qui a également crée le génialissime logiciel de sauvegarde UltraBackup, permet d'écrire votre script sans vous préoccuper de la conversion. Tout se fait de manière transparente 🙂 Ce logiciel se nomme PowerBatch

Téléchargements directs PowerBatch (v.6.2 ~2.33 mo) :
Mirroir 1 - Mirroir 2

Tutoriel sur le Batch

Pour les programmeurs ASP voici un convertisseur de code source :


File scriptFile = new File(nomFichier);
scriptFile.createNewFile();

PrintWriter crayon = new PrintWriter(new BufferedWriter(new OutputStreamWriter(new FileOutputStream(scriptFile),"CP850")));
String sScript = "Le contenu de mon scripts avec des accents é à ...";
crayon.write(sScript);
crayon.close();

Voilà de quoi déployer de beaux scripts de démarrage 🙂

Auteur : Mr Xhark

Fondateur du blog et passionné par les nouvelles techno, suivez-moi sur twitter