elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Extraer variable de un archivo de texto (BATCH)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Extraer variable de un archivo de texto (BATCH)  (Leído 11,659 veces)
rafaeljoseyepez

Desconectado Desconectado

Mensajes: 18


Ver Perfil
Extraer variable de un archivo de texto (BATCH)
« en: 8 Noviembre 2020, 21:19 pm »

Saludos, vengo acá con una pregunta que pudiera parecer algo tonta, pero no logro resolverlo, a ver si ustedes se les ocurre una mejor idea.

tengo un archivo de texto llamado calificar.txt con este contenido:

Código
  1.                  <td> <input type='image' src='../img/up.png' width='20px' height='20px' value='Like' id='like_28097' class='like'> <small><b>(<span id='likes_28097'>21</span>)</small></b> &nbsp;&nbsp;  <input type='image' src='../img/down.png' width='20px' height='20px' value='Unlike' id='unlike_28097' class='unlike'> <small><b>(<span id='unlikes_28097'>3</span>)</small></b> </td>


todo en una sola línea... lo que quiero es extraer de esa línea dos variables LIKES y DISLIKES...

de modo que el resultado de esto:
echo LIKES: %LIKES% DISLIKES: %DISLIKES%
sea esto:
LIKES: 21 DISLIKES: 3

Se me había ocurrido contar los caracteres:

Código
  1. <"calificar.txt" set /p "CALIFICAR="
  2. SET LIKES="%CALIFICAR:~167,2%"

funciona, pero... con los dislikes no funcionaría si a veces los likes son de 2 dígitos y a veces de 1, entonces el dislike a veces se mostraría bien y otras veces no...

¿Qué me sugieren para resolverlo?


« Última modificación: 8 Noviembre 2020, 21:22 pm por rafaeljoseyepez » En línea

EdePC
Moderador Global
***
Desconectado Desconectado

Mensajes: 2.042



Ver Perfil
Re: Extraer variable de un archivo de texto (BATCH)
« Respuesta #1 en: 8 Noviembre 2020, 23:20 pm »

Para hacer token-ización se usa el For /F, puedes ver su referencia completa en: https://ss64.com/nt/for_f.html

Código
  1. @Echo Off
  2. For /F "tokens=10,22 delims=<,>" %%a In (calificar.txt) Do Echo LIKES: %%a DISLIKES: %%b

Prueba:

Citar
C:\Users\EdSon\Desktop>type calificar.txt
                  <td> <input type='image' src='../img/up.png' width='20px' height='20px' value='Like' id='like_28097' class='like'> <small><b>(<span id='likes_28097'>21</span>)</small></b> &nbsp;&nbsp;  <input type='image' src='../img/down.png' width='20px' height='20px' value='Unlike' id='unlike_28097' class='unlike'> <small><b>(<span id='unlikes_28097'>3</span>)</small></b> </td>

C:\Users\EdSon\Desktop>type likes.cmd
@Echo Off
For /F "tokens=10,22 delims=<,>" %%a In (calificar.txt) Do Echo LIKES: %%a DISLIKES: %%b
Pause

C:\Users\EdSon\Desktop>likes.cmd
LIKES: 21 DISLIKES: 3
Presione una tecla para continuar . . .


En línea

rafaeljoseyepez

Desconectado Desconectado

Mensajes: 18


Ver Perfil
Re: Extraer variable de un archivo de texto (BATCH)
« Respuesta #2 en: 9 Noviembre 2020, 02:45 am »

Excelente, me funcionó perfecto, y ¿Cómo haría para establecerlos como variables?
Intenté con esto y no funcionó:

Código
  1. For /F "tokens=10,22 delims=<,>" %%a In (calificar.txt) Do SET "LIKES=%%A" Do SET "DISLIKES=%%B"
En línea

EdePC
Moderador Global
***
Desconectado Desconectado

Mensajes: 2.042



Ver Perfil
Re: Extraer variable de un archivo de texto (BATCH)
« Respuesta #3 en: 9 Noviembre 2020, 04:04 am »

Tienes que agrupar las instrucciones a ejecutar con Do entre paréntesis, esto si son más de uno, caso contrario tal como puse en el ejemplo anterior no es necesario para una sola instrucción o instrucciones seguidas en la misma línea:

Código
  1. @Echo Off
  2. For /F "tokens=10,22 delims=<,>" %%a In (calificar.txt) Do (
  3.  Set LIKES=%%a
  4.  Set DISLIKES=%%b
  5. )
  6. Echo LIKES: %LIKES% DISLIKES: %DISLIKES%

Instrucciones seguidas en la misma línea:

Código
  1. @Echo Off
  2. For /F "tokens=10,22 delims=<,>" %%a In (calificar.txt) Do Set "LIKES=%%a" & Set "DISLIKES=%%b")
  3. Echo LIKES: %LIKES% DISLIKES: %DISLIKES%

- Uso las comillas para evitar que se agregue en espacio que dejo antes del & y porque así recomiendan para evitar problemas con espacios en el contenido de las variables

Siempre puedes tener a mano este tutorial de Batch: Tutorial de Programación Batch (Nikos3194, 2013)
https://sites.google.com/site/nikos3194rfcindex/Tutorial%20de%20programacion%20Batch%20%5Bfinal%5D.pdf
Y por supuesto la misma ayuda de poniendo el /?, Ej: for /?
Para cosas más detalladas está la referencia de Batch en inglés: https://ss64.com/nt/
En línea

Danielㅤ


Desconectado Desconectado

Mensajes: 1.667


🔵🔵🔵🔵🔵🔵🔵


Ver Perfil
Re: Extraer variable de un archivo de texto (BATCH)
« Respuesta #4 en: 9 Noviembre 2020, 13:59 pm »

Hola, en mis primeros comienzos en programación he aprendido Bach y he usado este tutorial:

[PDF] Tutorial de Batch para novatos - Juanla
CURSO DE BATCH DESDE 0 – POR JUANLA

https://ensayandopopup.webcindario.com/pdfs/batch.pdf

Me ayudó bastante para poder aprender sobre batch.

No sé porque pero con el tiempo y hasta hoy en día he visto muchos otros tutoriales de Bach pero éste que dejé no lo he vuelto a ver... qué raro parece como que quedó en el olvido siendo un muy buen tutorial y que de ese tutorial/curso he aprendido bastante.


Saludos
« Última modificación: 9 Noviembre 2020, 14:07 pm por [D]aniel » En línea

rafaeljoseyepez

Desconectado Desconectado

Mensajes: 18


Ver Perfil
Re: Extraer variable de un archivo de texto (BATCH)
« Respuesta #5 en: 15 Diciembre 2020, 00:18 am »

Tienes que agrupar las instrucciones a ejecutar con Do entre paréntesis, esto si son más de uno, caso contrario tal como puse en el ejemplo anterior no es necesario para una sola instrucción o instrucciones seguidas en la misma línea:

Código
  1. @Echo Off
  2. For /F "tokens=10,22 delims=<,>" %%a In (calificar.txt) Do (
  3.  Set LIKES=%%a
  4.  Set DISLIKES=%%b
  5. )
  6. Echo LIKES: %LIKES% DISLIKES: %DISLIKES%

Instrucciones seguidas en la misma línea:

Código
  1. @Echo Off
  2. For /F "tokens=10,22 delims=<,>" %%a In (calificar.txt) Do Set "LIKES=%%a" & Set "DISLIKES=%%b")
  3. Echo LIKES: %LIKES% DISLIKES: %DISLIKES%

- Uso las comillas para evitar que se agregue en espacio que dejo antes del & y porque así recomiendan para evitar problemas con espacios en el contenido de las variables

Siempre puedes tener a mano este tutorial de Batch: Tutorial de Programación Batch (Nikos3194, 2013)
https://sites.google.com/site/nikos3194rfcindex/Tutorial%20de%20programacion%20Batch%20%5Bfinal%5D.pdf
Y por supuesto la misma ayuda de poniendo el /?, Ej: for /?
Para cosas más detalladas está la referencia de Batch en inglés: https://ss64.com/nt/


Muchísimas gracias, de verdad fue de mucha ayuda :D
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Varias dudas para extraer informacion de texto x batch?
Scripting
gh1E 6 7,872 Último mensaje 22 Julio 2009, 16:26 pm
por gh1E
extraer el texto de un archivo de word en java
Java
evatking 1 6,230 Último mensaje 10 Diciembre 2009, 23:42 pm
por Leyer
extraer el texto de un archivo de PDF en java
Java
evatking 0 3,212 Último mensaje 11 Diciembre 2009, 01:11 am
por evatking
Ayuda - Extraer un texto de un .txt [Batch]
Scripting
eXoRTH 4 5,191 Último mensaje 13 Noviembre 2011, 21:45 pm
por eXoRTH
Extraer palabras de un texto leido en un archivo (en C)
Programación C/C++
Locura_23 3 3,604 Último mensaje 22 Noviembre 2022, 18:56 pm
por K-YreX
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines