Caracteres especiales en un .bat
Resuelto
Fonx2
-
szoixjza -
szoixjza -
Hola,
Entonces, aquí está, quiero renombrar archivos en mp3 con el comando "rename" de DOS. Como tengo que renombrar aproximadamente 150, pensé que podría hacer un archivo ".bat" que contenga líneas como las siguientes:
[contenido del .bat]
rename "a.mp3" "a Nº86.mp3"
[fin del .bat]
Sin embargo, este idiota no logra manejar correctamente el carácter "º" (que corresponde a ALT + 167 para la tabla ASCII 2). En su lugar, obtengo un horrible carácter cuadrado y blanco.
Lo más curioso es que cuando escribo lo mismo en el símbolo del sistema, funciona de maravilla! El carácter se muestra normalmente en el nombre del archivo renombrado.
¿Qué hacer?
Entonces, aquí está, quiero renombrar archivos en mp3 con el comando "rename" de DOS. Como tengo que renombrar aproximadamente 150, pensé que podría hacer un archivo ".bat" que contenga líneas como las siguientes:
[contenido del .bat]
rename "a.mp3" "a Nº86.mp3"
[fin del .bat]
Sin embargo, este idiota no logra manejar correctamente el carácter "º" (que corresponde a ALT + 167 para la tabla ASCII 2). En su lugar, obtengo un horrible carácter cuadrado y blanco.
Lo más curioso es que cuando escribo lo mismo en el símbolo del sistema, funciona de maravilla! El carácter se muestra normalmente en el nombre del archivo renombrado.
¿Qué hacer?
Configuración: Windows XP media center 2005 (SP2) Internet Explorer 7.0
20 respuestas
-
Para información: el problema original proviene del hecho de que la consola MS-DOS (o cmd, si lo prefieres) utiliza la tabla de caracteres ASCII simple, mientras que Windows utiliza una tabla de caracteres extendida (ANSI) ligeramente diferente.
Los 128 primeros caracteres son estrictamente idénticos en ASCII y ANSI, los que cambian de una tabla a otra son de código ASCII o ANSI > 128.
Cuando utilizas el editor "edit" en una consola MS-DOS, simplemente obligas a escribir tu batch utilizando la tabla ASCII, que es la que utiliza la consola MS-DOS.
Esa es también la razón por la que funciona cuando se escribe el carácter en la consola DOS y se copia en el batch bajo un editor de Windows.
La otra solución, para mostrar un carácter particular en un editor bajo Windows (bloc de notas, Notepad++, Editpad, Ultra-Edit, etc...), es escribir:
- Alt + <código ASCII>
- Alt + 0<código ANSI>
(mantener Alt presionado y, al mismo tiempo, escribir el código del carácter).
IMPORTANTE: el código ASCII o ANSI debe ser escrito en el teclado numérico imperativamente.
Para un carácter destinado a MS-DOS, se utiliza el código ASCII solo (de 3 cifras).
Para diferenciar los caracteres ANSI de los ASCII, se añade un cero (dígito 0) delante del código ANSI (también de 3 cifras).