Autor
|
Tema: Como leer un texto que hay en [Batch] con el Bloc de notas (Leído 5,898 veces)
|
MaX2
Desconectado
Mensajes: 116
|
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 set "_batf=%~f0" set "_batp=%_batf:'=''%"
:readme set "_ReadMe=%SystemRoot%\Temp\ReadMe.txt" if exist "%_ReadMe%" del /f /q "%_ReadMe%" %nul% call :export txt "%_ReadMe%" start notepad "%_ReadMe%" del /f /q "%_ReadMe%" exit /b
:export %nul% %_psc% "$f=[io.file]::ReadAllText('!_batp!') -split \":%~1\:.*`r`n\"; [io.file]::WriteAllText('%~2',$f[1].Trim(),[System.Text.Encoding]:: ASCII);" exit/b
:txt: Aplicación Español Inglés
:txt:
Gracias.
|
|
|
En línea
|
|
|
|
|
MaX2
Desconectado
Mensajes: 116
|
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.
|
|
|
En línea
|
|
|
|
.xAk.
Desconectado
Mensajes: 397
F0r3v3R NeWbI3
|
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
|
|
|
En línea
|
|
|
|
MaX2
Desconectado
Mensajes: 116
|
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
|
|
|
En línea
|
|
|
|
.xAk.
Desconectado
Mensajes: 397
F0r3v3R NeWbI3
|
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
|
|
« Última modificación: 9 Febrero 2022, 00:50 am por .xAk. »
|
En línea
|
|
|
|
EdePC
|
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: Set "_ReadMe= %WinDir%\Temp\ReadMe.txt" Call : export txt " %_ReadMe%" Start notepad "%_ReadMe%" :export PowerShell $f=[io.file]::ReadAllText('%yo%') -Split ':%~1:';[io.file]::WriteAllText('%~2',$f[1].Trim()) :txt: Aplicación Expañol Inglés :txt:
Si lo deseas puedes especificar la codificación UTF8: [io.file]::WriteAllText('%~2',$f[1].Trim(),[System.Text.Encoding]::UTF8)
|
|
|
En línea
|
|
|
|
.xAk.
Desconectado
Mensajes: 397
F0r3v3R NeWbI3
|
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
|
|
« Última modificación: 9 Febrero 2022, 04:20 am por .xAk. »
|
En línea
|
|
|
|
MaX2
Desconectado
Mensajes: 116
|
.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.
|
|
|
En línea
|
|
|
|
EdePC
|
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: Set "_ReadMe= %WinDir%\Temp\ReadMe.txt" Call : export txt " %_ReadMe%" Start notepad "%_ReadMe%" :export For /F "tokens=1 delims=:" %%a In ('FindStr /X /N ": %1:" %yo%' ) Do More %yo% + %%a > %2 :txt: Aplicación Expañol Inglés Ñandú
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.
|
|
« Última modificación: 10 Febrero 2022, 03:37 am por EdePC »
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
como imprimir un bloc de notas
Programación Visual Basic
|
al0ns0
|
0
|
3,737
|
21 Febrero 2006, 10:35 am
por al0ns0
|
|
|
fread o alguna funcion para leer un bloc de notas
Programación C/C++
|
Erres
|
8
|
7,215
|
5 Octubre 2012, 18:19 pm
por Erres
|
|
|
abrir archivo de texto con bloc de notas hecho en java
Java
|
JenselG
|
1
|
2,745
|
6 Mayo 2018, 13:56 pm
por ivancea96
|
|
|
El Bloc de notas tendrá predicción de texto en Windows 10: así funciona
Noticias
|
wolfbcn
|
1
|
1,276
|
10 Junio 2019, 18:44 pm
por @XSStringManolo
|
|
|
Si buscas una alternativa al Bloc de notas, usa estos editores de texto
Noticias
|
El_Andaluz
|
0
|
2,153
|
13 Marzo 2022, 00:09 am
por El_Andaluz
|
|