Fichier BAT/CMD avec des caractères accentués
j'ai un fichier Windows batch qui a pour instruction d'exécuter un fichier EXE dans un emplacement dont le chemin contient des caractères accentués. Voici le contenu du fichier de commandes.
@echo off
C:españoljrebinjava.exe -version
C:españoljrebinjava.exe-cette voie existe et est correcte. Je peux lancer cette commande directement sur cmd.EXE. Mais quand j'exécute la commande à partir d'un fichier bat/cmd, elle échoue en disant "le système ne peut pas trouver le chemin spécifié"
une façon de corriger ceci est en mettant la page de code à 1252 (qui fonctionne pour moi). Mais j'ai bien peur que nous devions définir des pages de code pour n'importe quel lieu non-anglais et trouver quelle page de code à utiliser est assez difficile.
Existe-t-il une autre façon de régler ce problème? Peut-être une option de ligne de commande ou autre chose?
6 réponses
une autre façon de faire cela, dans Windows, est d'utiliser wordpad.exe:
- Exécuter wordpad.exe
- Ecrivez votre script comme d'habitude, avec des accents
- Choisir Enregistrer sous > autres formats
- Choisir de l'enregistrer comme texte document MS-DOS (*.txt)
- modifier l'extension du fichier .txt pour .chauve-souris
j'ai eu le même problème, et cette réponse résolu. Fondamentalement, vous devez envelopper votre script avec un tas de commandes pour changer votre codepage de terminal, et puis pour le restaurer.
@echo off
for /f "tokens=2 delims=:." %%x in ('chcp') do set cp=%%x
chcp 1252>nul
:: your stuff here ::
chcp %cp%>nul
a Fonctionné comme un charme!
Puisque vous avez @echo off
vous ne pouvez pas voir ce que votre lot envoie à l'invite de commande. Reproduire votre problème avec cette off il semble que le ñ
le caractère est mal interprété puisque la sortie que je vois est:
C:\espa±ol\jre\bin\java -version
The system cannot find the path specified.
j'ai pu le faire fonctionner en faisant écho à la commande dans le fichier batch à partir de l'invite de commande, i.e.
echo C:\español\jre\bin\java.exe -version>>test.bat
cela semble traduire le caractère dans ce que l'invite de commande Recherche, bien que je ne l'ai testé qu'avec Paramètres régionaux anglais, donc je ne sais pas si ça va fonctionner dans toutes les situations pour vous. En outre, si vous ouvrez le lot dans un éditeur de texte comme notepad il semble faux (C:\espa¤ol\jre\bin\java.exe
)
J'utilise le bloc-notes++ et il a une option pour changer "character sets",OEM-US
a fait l'affaire. ;)
Utiliser Alt+ 0164 Alt+ 164 - dans un fichier de commandes... Ça aura l'air bizarre, mais ton script devrait tourner.
j'ai aussi eu le même problème. J'essayais de créer un simple fichier xcopy batch pour copier une feuille de calcul d'un dossier à l'autre. Son nom avait le caractère "é" en lui, et il a refusé de copier.
même essayer D'utiliser les suggestions de Katalin et Metalcoder n'a pas fonctionné sur ma machine Windows XP néolithique. Puis j'ai soudain pensé: Pourquoi ne pas garder les choses aussi simple que possible (comme je suis moi-même extrêmement simple d'esprit quand il s'agit d'Ordinateurs) et tout simplement substituer, dans le fichier batch code, "é" avec le caractère générique "?".
Et devinez quoi? Il a travaillé!