Archivos por lotes y caracteres acentuados
Resuelto
baldeagleseyes
Mensajes publicados
7
Estado
Miembro
-
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:
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.
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
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.
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.
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"?
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"?