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?

14
demandé sur Peter Mortensen 2011-09-28 17:57:49

6 réponses

une autre façon de faire cela, dans Windows, est d'utiliser wordpad.exe:

  1. Exécuter wordpad.exe
  2. Ecrivez votre script comme d'habitude, avec des accents
  3. Choisir Enregistrer sous > autres formats
  4. Choisir de l'enregistrer comme texte document MS-DOS (*.txt)
  5. modifier l'extension du fichier .txt pour .chauve-souris
15
répondu katalin_2003 2014-03-12 10:27:43

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!

9
répondu Metalcoder 2017-05-23 12:09:45

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)

6
répondu Jordan Evens 2011-10-22 19:29:47

J'utilise le bloc-notes++ et il a une option pour changer "character sets",OEM-US a fait l'affaire. ;)

4
répondu genuinefafa 2016-10-26 13:27:28

Utiliser Alt+ 0164 Alt+ 164 - dans un fichier de commandes... Ça aura l'air bizarre, mais ton script devrait tourner.

3
répondu Pete Reyna 2017-01-02 18:28:33

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é!

0
répondu Keith 2017-01-02 18:31:01