Foros del Web » Programación para mayores de 30 ;) » Programación General »

Script en consola de Windows

Estas en el tema de Script en consola de Windows en el foro de Programación General en Foros del Web. Hola, tengo un script muy sencillo hecho en bash (Linux) y tengo que replicar el funcionamiento para que corra sobre windows. Si o si necesito ...
  #1 (permalink)  
Antiguo 15/09/2010, 07:03
 
Fecha de Ingreso: agosto-2004
Mensajes: 56
Antigüedad: 20 años, 3 meses
Puntos: 0
Script en consola de Windows

Hola,
tengo un script muy sencillo hecho en bash (Linux) y tengo que replicar el funcionamiento para que corra sobre windows. Si o si necesito hacer el equivalente para el shell de Windows, no con algun programa que simule una consola linux sobre windows.

El tema es el siguiente, a ver si alguien me puede ayudar:

Necesito, sobre un archivo de texto:

* buscar una determinada cadena (esto lo puedo hacer con Find o Findstr) y
obtener el resultado en un archivo de texto (con el operador >). Le estoy
poniendo a Find el parametro /C para contar la cantidad de lineas donde
aparece dicha cadena. Hasta aca voy bien (creo).
* luego, necesito usar un IF (cosa que no se como hacer en windows), para que
compare la cantidad de lineas que tiene el archivo resultante con el numero 1.
Es decir, algo de la forma "IF numero de lineas encontradas = 1 then...".

Si alguien me puede ayudar se lo voy a agradecer muchisimo. Ya que no manejo la consola de Windows y hay cosas que en bash hago y aca no puedo, o no se hacerlo.

Saludos.
  #2 (permalink)  
Antiguo 15/09/2010, 07:41
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Script en consola de Windows

Hola con esta busqueda haces lo que quieres
Código:
rem aqui busca en un archivo de texto una cadena
for /f "tokens=3" %%f in ('find /c "cadena" "token.txt"') do (
      rem aqui verifica que haya encontrado ese valor si lo encuentra imprime entra	   	
       if %%f == 1 echo entra	    	  
   )

)
Espero sea de tu ayuda :)

Saludos!
  #3 (permalink)  
Antiguo 15/09/2010, 08:45
 
Fecha de Ingreso: agosto-2004
Mensajes: 56
Antigüedad: 20 años, 3 meses
Puntos: 0
Respuesta: Script en consola de Windows

Cita:
Iniciado por Libras Ver Mensaje
Hola con esta busqueda haces lo que quieres
Código:
rem aqui busca en un archivo de texto una cadena
for /f "tokens=3" %%f in ('find /c "cadena" "token.txt"') do (
      rem aqui verifica que haya encontrado ese valor si lo encuentra imprime entra	   	
       if %%f == 1 echo entra	    	  
   )

)
Espero sea de tu ayuda :)

Saludos!

Hola, muchas gracias por tu respuesta!!
Perdoname la inocencia pero no logre hacerlo funcionar.

Te especifico mas lo que tengo que hacer a ver si puedes ayudarme un poco mas.

tengo esto el bash:

if [ 'archivo_texto | grep "cadena" | wc -l ' = "1" ]; then
echo "0"
else
echo "1"
fi


Lo que necesito es "compilar" esto para el interprete del shell de windows. O sea traducirlo para que funcione en win.
___


con grep se busca "cadena" dentro del texto; wc cuenta la cantidad de lineas devueltas y la comparacion solo sirve si esta cantidad de lineas es 1.
Creo que es simple pero no logro hacerlo.

Te pido ayuda a vos o a algun otro usuario que pueda.
Desde ya mil gracias!!


PD: Que seria "tokens=3" en tu codigo?
  #4 (permalink)  
Antiguo 15/09/2010, 09:39
 
Fecha de Ingreso: agosto-2004
Mensajes: 56
Antigüedad: 20 años, 3 meses
Puntos: 0
Respuesta: Script en consola de Windows

me rectifico.
Muchas gracias Libra por tu codigo... me ha servido y hace lo que quiero!!


Lo que te voy a pedir por favor, es que me digas que significa lo siguiente en tu codigo:

* "tokens=3"
* el parametro /f


Gracias nuevamente.
Saludos.

Última edición por CLAYMAN; 15/09/2010 a las 09:51
  #5 (permalink)  
Antiguo 15/09/2010, 11:53
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Script en consola de Windows

For / f hace una busqueda por "tokens" en un archivo de texto, un token es una palabra, cantidad u cadena que esta separada por el delimitador que se le indica, en este caso find lo que hace te regresa como resultado 3 columnas por lo que token=3 nada mas toma la tercer columna que es el numero de linea (creo jejeje)
para mas informacion te dejo la siguiente liga :)

http://www.palomatica.info/juckar/mi...s/bat/for.html
Saludos!
  #6 (permalink)  
Antiguo 15/09/2010, 13:16
 
Fecha de Ingreso: agosto-2004
Mensajes: 56
Antigüedad: 20 años, 3 meses
Puntos: 0
Respuesta: Script en consola de Windows

Muchisimas Gracias!!!!


Etiquetas: bash, consola, shell, windows
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:21.