tuberias significa salidas salida redirigir que por mensajes los guardar generados filtros fichero error envían dónde defecto comandos comando canal archivo encoding batch-file cmd

encoding - significa - redirigir salidas linux



Codificación incorrecta después de redirigir la salida `dir` a un archivo (2)

Pruebe a iniciar cmd.exe con el modificador / u. Eso hará que cmd escriba en UTF-16.

También necesita cambiar a la página de códigos 1250 (ANSI para Europa Central) usando chcp 1250 .

Puedes hacerlo dentro de tu script por lotes. Hice uno para ti. La estructura es:

./Jižní Morava ./Jižní Morava/scenery ./Pelhřimov ./Pelhřimov/scenery ./Nic moc výlet ./Střední Čechy ./Střední Čechy/scenery

Y el guion:

@echo off if _%1_==_main_ ( call :main ) else ( cmd /u /c "%0 main" ) goto :eof :main chcp 1250 del directories.conf for /F "delims=!" %%R in (''dir * /b /a:d /o:n'') do ( if exist %%R/scenery ( echo %%R echo %%R >> directories.conf ) else ( echo not included: %%R ) ) echo Directory list created... pause goto :eof

También te recomiendo que leas la gran respuesta de andrewdotn a una pregunta relacionada.

Ejecuto este código en Windows cmd.exe en Europa y utilizo la configuración local aquí, para mi idioma. Entonces uso diacríticos en los nombres de los directorios.

Intento enumerar los nombres de los directorios y se muestran correctamente. Luego los guardo en un archivo, pero cuando lo abro en el bloc de notas, los signos diacríticos no son legibles: por ejemplo, en lugar de Střední Čechy tengo Stýednˇ ¬echy .

¿Qué hice mal y cómo puedo corregirlo?

@echo off del directories.conf FOR /F "delims=!" %%R IN (''dir * /b /a:d /o:n'') DO ( IF EXIST "%%R/scenery" ( echo %%R echo %%R >> directories.conf ) ELSE (ECHO NOT INCLUDED %%R) ) Echo Directory list created... pause


Como solución alternativa (si el archivo ya está generado), puede volver a codificar su archivo.

Notepad ++ tiene esta característica:

  • Vaya a Codificación> Juegos de caracteres
  • Seleccione el juego de caracteres apropiado que tenga un renderizado elegante
  • Volver a Codificación> Conjuntos de caracteres
  • Seleccione Convertir a UTF-8
  • Guarde su archivo