Título: Como leer un texto que hay en [Batch] con el Bloc de notas Publicado por: MaX2 en 8 Febrero 2022, 18:57 pm Hola, no sé cómo explicaros esto ya que no tengo mucha idea de programar los archivos BAT.
Tengo creado un menú y una de sus opciones es leer un texto que hay en ese archivo bat con el bloc de notas. He ido viendo ejemplo de cómo abrirlo, y lo hace, pero no entiendo esos comandos, para poder modificarlos y que pueda abrir el bloc de notas en modo UTF8, o que al crear el archivo temporal lo cree en modo UTF8, y así poder leer las letras con acentos, la ñ, etc. Os pongo el código que estoy utilizando, a ver si alguien me puede decir que hay que cambiar para poder mostrar el texto con sus acentos. Desde el menú llamo a :readme Código: set "_batf=%~f0" Gracias. Título: Re: Como leer un texto que hay en [Batch] con el Bloc de notas Publicado por: .xAk. en 8 Febrero 2022, 19:25 pm mira esto: Poner acentos en archivo BAT (https://foro.elhacker.net/scripting/poner_acentos_en_archivo_bat-t513844.0.html) ¿van por ahí los tiros?
Título: Re: Como leer un texto que hay en [Batch] con el Bloc de notas Publicado por: MaX2 en 8 Febrero 2022, 20:16 pm Hola .xAk., no, no es eso, como muestro en ese ejemplo del primer post, tengo un texto dentro del archivo BAT que quiero mostrarlo con el bloc de notas.
lo que hace el bat es crear un archivo readme.txt y copia ese texto en ese archivo readme.txt, y luego lo abre con el bloc de notas start notepad "%_ReadMe%" pero en ese cambio parece que pierde los acentos, ya que en el archivos bat si esta escrito con los acentos. Título: Re: Como leer un texto que hay en [Batch] con el Bloc de notas Publicado por: .xAk. en 8 Febrero 2022, 21:54 pm Citar Las páginas de códigos ANSI pueden ser diferentes en equipos diferentes o se pueden cambiar para un solo equipo, lo que provoca daños en los datos. Para obtener los resultados más coherentes, las aplicaciones deben usar Unicode, como UTF-8 o UTF-16, en lugar de una página de códigos específica. empieza tu archivo .bat o .cmd con Código: chcp 65001 Título: Re: Como leer un texto que hay en [Batch] con el Bloc de notas Publicado por: MaX2 en 8 Febrero 2022, 22:26 pm El archivo es cmd
Y si que tengo puesto en ese archivo en código chcp para que en ese cmd ser puedan ver los acentos, pero el problema no lo tengo es ese cmd, si no en el TXT que se crea desde ese cmd Título: Re: Como leer un texto que hay en [Batch] con el Bloc de notas Publicado por: .xAk. en 8 Febrero 2022, 22:39 pm tienes que adaptarte al archivo, ha sido creado de cualquier manera. Lo puedes identificar y mientras trates con él estar en su entorno. ... déjamelo mirar ... la codificación del archivo se puede determinar ... el chcp lo puedes usar sin parar
iDefaultEncoding HKEY_CURRENT_USER\SOFTWARE\Microsoft\Notepad que también es para cada máquina diferente y se puede cambiar ... pero quizás no le guste al usuario ... mejor adaptarse. El archivo creado ha sido creado diferente que en unicode. Son problemas de antaño Título: Re: Como leer un texto que hay en [Batch] con el Bloc de notas Publicado por: EdePC en 9 Febrero 2022, 01:19 am Por defecto PowerShell trabaja con UTF8, no es necesario especificar esa codificación si esa es la que vas a utilizar. De todas maneras tu estás especificando que use ASCII, por eso no te guarda bien los acentos, el siguiente ejemplo funciona perfectamente:
Código Si lo deseas puedes especificar la codificación UTF8: Código
Título: Re: Como leer un texto que hay en [Batch] con el Bloc de notas Publicado por: .xAk. en 9 Febrero 2022, 03:14 am offtopic How To file in batch?
magic number frnd sigo sin enterarme si, vale, los dos primeros ochos, pero en texto plano, el primero que no es ASCII identifica ANSI ¿y el file en DOS++? a ms le gusta pillar de nix, y se olvida que los privilegios son de verdad Título: Re: Como leer un texto que hay en [Batch] con el Bloc de notas Publicado por: MaX2 en 9 Febrero 2022, 17:05 pm .xAk. no entiendo muy bien lo que quieres decir, pero con el codigo del amigo EdePC si se pueden mostrar sin problemas las palabras acentuadas.
EdePC también probé a cambiar el código ::%nul% %_psc% "$f=[io.file]::ReadAllText('!_batp!') -split \":%~1\:.*`r`n\"; [io.file]::WriteAllText('%~2',$f[1].Trim(),[System.Text.Encoding]::ASCII);" por : ::%nul% %_psc% "$f=[io.file]::ReadAllText('!_batp!') -split \":%~1\:.*`r`n\"; [io.file]::WriteAllText('%~2',$f[1].Trim(),[System.Text.Encoding]::UTF8);" y no funciona, no muestra los acentos el problema lo veo si no tiene instalado el PowerShell Salu2. Título: Re: Como leer un texto que hay en [Batch] con el Bloc de notas Publicado por: EdePC en 10 Febrero 2022, 03:35 am PowerShell viene incluido por defecto desde Windows 7, las instrucciones que utilizas son de las clásicas así que no debería haber problemas.
Con respecto a que aún no te funciona, pues seguramente tu Batch no está guardado como UTF-8, usa un editor de texto/código decente como Notepad3, Notepad++ o SublimeText y asegúrate de guardar tu archivo con codificación UTF8 sin BOM Si no quieres usar PowerShell, puedes usar Batch puro y duro: Código La ventaja es que tomará la codificación de tu Batch sea cual sea: ANSI, UTF-8, etc y el archivo resultante también tendrá la misma codificación por lo que siempre debería mostrar las cosas tal cual se ven. Título: Re: Como leer un texto que hay en [Batch] con el Bloc de notas Publicado por: .xAk. en 10 Febrero 2022, 04:26 am (https://i.imgur.com/4Ya43YZ.gif) que gandul que estoy (https://i.imgur.com/4Ya43YZ.gif) eso lo tenemos que poder hacer desde cmd
Título: Re: Como leer un texto que hay en [Batch] con el Bloc de notas Publicado por: MaX2 en 10 Febrero 2022, 08:21 am Gracias EdePC, si PowerShell también esta en Windows 7, creo que por lo que dices es mejor utilizar este, y ahora si esta funcionando.
P.D. posiblemente tenga que volver a recurrir a preguntar sobre los dichos colores en los Batch, llevo una semana que lo dejo y lo vuelvo a retomar, porque me tienen frito. |