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
.