Archivos por lotes y caracteres acentuados

Resuelto
baldeagleseyes Mensajes publicados 7 Estado Miembro -  
baldeagleseyes Mensajes publicados 7 Estado Miembro -
Hola,

Tengo un pequeño problema con un archivo por lotes. Esto es lo que tengo hasta ahora:

set /P montexte=Tape un texto: echo %montexte%>>monfichier.txt


El problema es que si el usuario escribe caracteres acentuados, estos son reemplazados por otros caracteres en el archivo .txt. Lo que puede volver el texto ilegible.

¿Qué debo hacer?

Gracias.

3 respuestas

baldeagleseyes Mensajes publicados 7 Estado Miembro 3
 
Aquí está, creo que he encontrado...

set /P mivariable=Escriba texto:
chcp 1252
echo %mivariable%>> mifichero.txt
chcp 850

Ya había probado con el comando CHCP que cambia la página de código de caracteres activa, pero sin éxito.

Por defecto, la página de código en la consola (cmd.exe) es 850 y 1252 en Windows. Así que al inicio del script, es 850, lo que permite hacer la entrada correctamente en el comando SET. Luego cambio la página de código a 1252. El contenido de la variable no se ve afectado. Ejecuto el comando ECHO con la redirección ">>". El contenido de la variable se escribe en el archivo de texto con la página de código 1252. Luego vuelvo a activar la página de código 850 para continuar la ejecución del batch. Cuando abro el archivo de texto más tarde en Bloc de notas, veo exactamente lo que el usuario ha escrito.
2
baldeagleseyes Mensajes publicados 7 Estado Miembro 3
 
Gracias Quester4.

El problema es que no tengo ningún control sobre lo que mis usuarios van a escribir y es seguro que van a poner acentos u otros caracteres especiales.

¿Hay algo que puedo poner en mi batch para eliminar estos caracteres antes del "echo %montexto%>>monfichero.txt"?
1
Quester4 Mensajes publicados 150 Estado Miembro 126
 
Hola,
El Batch no maneja los acentos. Esto se debe a la diferencia entre las sintaxis utilizadas, tú escribes acentos en ASCII, mientras que el Batch funciona con el sistema ANSI.
La única cosa que puedes hacer es no escribir acentos.
O escribir manualmente en el archivo...
0