2010-09-01 5 views
0

Je suis en train d'écrire un script batch pour accéder à certains répertoires faire une tâche spécifique, quelque chose comme ce qui suit:script batch caractères latins

set DBCreationScript=//Here I set the full path for the script 
echo %DBCreationScript% 

problème est le chemin a obtenu quelques caractères latins (C, ã, á) et lorsque j'exécute le script, la sortie affiche des caractères étranges, pas ceux que j'ai tapés. Le script batch est en codage ANSI.

J'ai déjà essayé de définir le codage de script sur UTF-8, mais apparemment, l'interpréteur de commandes ne peut pas gérer les caractères de contrôle qui apparaissent au début du fichier.

Des pensées?

Répondre

2

Enregistrez le fichier batch dans le codage OEM (un éditeur décent devrait permettre à ce sujet) ou modifier la page de code avant de l'exécuter avec

chcp 1252 

Vous pouvez aussi l'enregistrer au format UTF-8 sans signature (BOM) et utiliser

chcp 65001 

mais sur ce chemin se trouve péril et dragons vous attendent pour vous manger (en bref: Il est généralement douloureux et a quelques étranges effets secondaires).

+0

En note: OEM ne pouvait pas gérer 'ã', seulement les deux autres caractères (au moins sur mon éditeur, notepad ++). Quoi qu'il en soit, chcp a fait l'affaire. –

+0

Eh bien, cela dépend de la page de code OEM que vous utilisez. 850 (qui est le défaut sur ma machine) le supporte. Mais oui, c'est le problème habituel avec les encodages non-Unicode et une raison majeure pour laquelle ils devraient déjà mourir. – Joey

Questions connexes