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

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [Batch] Problema para enviar un find a un archivo y obtenerlo como variable
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Batch] Problema para enviar un find a un archivo y obtenerlo como variable  (Leído 4,067 veces)
Shike1000

Desconectado Desconectado

Mensajes: 2


Ver Perfil
[Batch] Problema para enviar un find a un archivo y obtenerlo como variable
« en: 16 Febrero 2020, 11:24 am »

Buenas, intento conseguir para un ejercicio de clase el cual es mostrar cuales equipos estan encendidos o apagados a traves de un ping, el problema es que lo que es el find no se guarda en el archivo trash.txt ya que el archivo al abrirlo esta en blanco, al menos no usando el for, si lanzo tan solo el comando funciona a la perfeccion. PD: Pense que fuera porque porque no leia las ips, pero en los echos aparece las ips de los equipos.

¿Que estoy haciendo mal? Muchas gracias

Código:
@echo on

for /f "tokens=*" %%a in (ip.txt) do (

    ping %%a | find "0% perdidos" > trash.txt
    set /p VAR=<trash.txt

    if %VAR% EQU == "(0% perdidos)," (
        echo El equipo %%a esta operativo
    ) else (
        echo El equipo %%a no esta operativo )

)
echo Proceso por lotes finalizado


« Última modificación: 16 Febrero 2020, 11:41 am por Shike1000 » En línea

EdePC
Moderador Global
***
Desconectado Desconectado

Mensajes: 2.156



Ver Perfil
Re: [Batch] Problema para enviar un find a un archivo y obtenerlo como variable
« Respuesta #1 en: 17 Febrero 2020, 01:19 am »

Saludos,

- Los For tienen la limitación de NO actualizar las variables hasta que dicho For haya terminado, tienes que especificar EnableDelayedExpansion para cambiar este comportamiento y utilizar ! en lugar de % para referenciar variables.

- En archivos Batch tienes que usar siempre doble % a no ser que se traten de variables de entorno %variable%

- El operador en If EQU sirve para comparar valores numéricos, usa == para comparar texto y usa las comillas para aclararlo, asegúrate de especificar exactamente e texto completo a comparar, en tu caso debe llevar cuatro espacios delante

- Para obtener caracteres especiales como vocales tildadas (á) debes buscar el equivalente haciendo un Echo á>atilde.txt, luego en atilde.txt tienes el caracter que debes usar para obtener á

Código:
@Echo off
SetLocal EnableDelayedExpansion
For /F %%a In (ip.txt) Do (
  Ping %%a | Find "0%% perdidos">trash.txt
  Set /P VAR=<trash.txt
  If "!VAR!" == "    (0%% perdidos)," (
    Echo El equipo %%a está operativo
  ) Else (
    Echo El equipo %%a no está operativo
  )
)
EndLocal
Pause

----------------
---- Error de GeSHi?

Código
  1. @Echo off
  2. SetLocal EnableDelayedExpansion
  3. For /F %%a In (ip.txt) Do (
  4.  Ping %%a | Find "0%% perdidos">trash.txt
  5.  Set /P VAR=<trash.txt
  6.  If "!VAR!" == "    (0% style="color: #448888;">% perdidos)," (
  7.    Echo El equipo %%a está operativo
  8.  ) Else (
  9.    Echo El equipo %%a no está operativo
  10.  )
  11. )


« Última modificación: 17 Febrero 2020, 01:32 am por EdePC » En línea

Shike1000

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: [Batch] Problema para enviar un find a un archivo y obtenerlo como variable
« Respuesta #2 en: 17 Febrero 2020, 18:50 pm »

Muchas gracias por la solucion y por explicarme el funcionamiento, me ha ayudado a poder entender todo
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[batch]Almacenar el contenido de un archivo .txt en una variable. « 1 2 »
Scripting
MK-Ultra 17 19,893 Último mensaje 8 Julio 2008, 17:48 pm
por Coegho
Problema al guardar nombre de archivo en variable (batch) SOLUCIONADO
Scripting
<ИΘZIЭ(ŦB> 8 11,296 Último mensaje 22 Septiembre 2009, 01:12 am
por Aranguez
[BATCH] Como hago para que cargue un archivo txt
Scripting
goldfoly 3 3,525 Último mensaje 22 Noviembre 2009, 12:23 pm
por Darioxhcx
Problema con batch para enviar correo por telnet
Scripting
gorgon12 2 10,407 Último mensaje 9 Enero 2010, 20:27 pm
por gorgon12
variable batch para ejecutar un archivo al abrir otro
Scripting
@felipe@ 4 8,084 Último mensaje 2 Agosto 2010, 20:59 pm
por FerJGS
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines