Formation PUB120 : Les fichiers batch sous Windows, 2018 Tâches automatisées

1.2 Les accents dans un echo et les espaces dans les chemins


À l'origine de la création du DOS, le nom des fichiers était limité à 8 caractères suivis d'au maximum 3 caractères pour l'exension. Les espaces et caractères accentués étaient interdits.

De plus, à l'intérieur des fichiers, les caractères accentués étaient mal gérés.

De nos jours, ces limitations n'existent plus à condition de prendre quelques précautions.

Voici donc quelques techniques pour vous assurer que vos fichiers batch fonctionnent correctement s'ils doivent afficher des caractères accentués dans un echo ou s'ils doivent travailler avec des dossiers contenant des espaces ou des caractères accentués.

echo avec des caractères accentués

L'encodage d'un fichier indique comment les caractères qui ne font pas partie des 128 premiers caractères de la charte ASCII seront encodés lors de l'enregistrement. Par défaut, selon l'éditeur utilisé, l'encodage sera généralement en UTF-8 ou en ANSI.

Lorsqu'un fichier batch doit afficher des caractères accentués dans un echo, il faut que ces caractères soient encodés de façon à ce que la ligne de commande (CMD) puisse les décoder comme il faut. Il faut donc que le fichier soit encodé au format OEM 720. Par exemple, dans Notepad++, allez dans le menu Encodage / Codage de caractères / Arabe / OEM 720.

Noms de dossiers ou de fichiers avec des caractères accentués

Si, en plus des caractères à afficher, le fichier batch doit travailler avec des caractères accentués dans les noms de fichiers ou de dossiers, les choses se compliquent. Mais il est tout de même possible d'y arriver.

Deux étapes sont nécessaires :

  • APRÈS avoir écrit tout le texte avec l'encodage OEM 720, vous devrez modifier à nouveau l'encodage. Le second encodage sera ANSI. Les caractères accentués déjà présents dans le fichier apparaîtront sous forme de caractères bizarre. Laissez-les tels quels car ils sont encodés de façon à pouvoir être bien affichés par les echo. Cependant, les accents dans les noms de dossiers ou de fichiers devront être écrits correctement sous cet encodage.
  • Au début de votre script, vous devez indiquer que les instructions contenues dans le script utilisent la page de code « Windows Latin 1 (ANSI) ». Ceci se fait à l'aide de la commande CHCP suivie du numéro correspondant à la page de code désirée, soit le 1252.
    Fichier batch

    CHCP 1252

    SET chemin=C:\Users\Étienne\Documents

Espaces dans les noms de dossiers ou de fichiers

Dans une commande DOS, l'espace permet de séparer les arguments de la commande.

Si le nom d'un dossier ou d'un fichier contient des espaces, il faudra placer le chemin entre guillemets.

Ex :

Fichier batch

SET chemin="C:\Program Files\Google"

▼Publicité

Veuillez noter que le contenu de cette fiche vous est partagé à titre gracieux, au meilleur de mes connaissances et sans aucune garantie.
Merci de partager !
Soumettre