vol ver uso significa que funcion ejemplo comandos comando windows encoding batch-file command-prompt

windows - uso - ver comandos



¿Por qué hay una diferencia entre la codificación del símbolo del sistema de Windows frente a un archivo por lotes? (1)

Por ejemplo, supongamos que tengo un archivo por lotes llamado ''test.cmd'' y simplemente contiene:

echo %1

Puedo llamarlo directamente desde el símbolo del sistema con ''test.cmd some¬arg'' y el resultado es que se imprime la cadena ''some¬arg'' .

Sin embargo, si ''tester.cmd'' esa misma llamada en un segundo archivo por lotes, llamado ''tester.cmd'' por el bien del argumento, y lo llamo desde el símbolo del sistema, el resultado es que se imprime la cadena ''some%arg'' .

¿Qué es lo que arruina la codificación y cómo lo soluciono? Estoy seguro de haber solucionado esto antes, pero no recuerdo cómo ...

¡Gracias!


Esto se debe a que el archivo por lotes está codificado en una página de códigos diferente a la que cmd.exe tiene actualmente.

En las configuraciones predeterminadas occidentales, cmd.exe se inicia en CP850 , pero los editores de texto generalmente funcionan en CP1252 (lo que a menudo se conoce como Latin-1 o ISO-8859-1).

Los caracteres "¬" y "¼" comparten el mismo código de carácter en estas dos páginas de códigos, "BC".

La solución es simple. Codifique su archivo por lotes en la página de códigos 850 o cambie cmd.exe a la página de códigos 1252 emitiendo chcp 1252 .