Caracteres especiales en un .bat

Resuelto
Fonx2 -  
 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?
Configuración: Windows XP media center 2005 (SP2) Internet Explorer 7.0

20 respuestas

  1. Juju
     
    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).
    28
    1. Fonx2 Mensajes publicados 348 Estado Miembro 132
       
      Gracias por esta precisión que permite entender mejor la problemática.
      ¡Respuesta muy clara que complementa la información ya presente en la discusión!
      ¡Le pongo +1!

      ¡Gracias de nuevo!
      0
    2. szoixjza
       
      gracias
      0