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

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  asignar variables en .bat
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: asignar variables en .bat  (Leído 6,820 veces)
viejari

Desconectado Desconectado

Mensajes: 4


Ver Perfil
asignar variables en .bat
« en: 30 Mayo 2012, 16:57 pm »

Hola a todos!!!
Desde ayer estoy aprendiendo a generar un archivo .bat, lo cual me ha sido un poco complicado porque he buscado info en la web y no me aportan mucho, he revisado esos archivos hechos por otros personajes en la empresa y como no entiendo el codigo y no me gusta copiar como loro he ido investigando por mi cuenta...

Hasta acá todo bien...

Pero mi duda-problema es que quiero asignar un valor a una variable para que se vea en el mismo archivo log de salida...
esto es lo que tengo hasta ahora y no he encontrado información al respecto....
Alguien sabrá donde puedo encontrar la info? o en su defecto decirme si "es muy tonto lo que trato de hacer"?

Lo que realiza el .bat es ejecutar un procedimiento en SQL server 2000 y luego buscar datos de una tabla que se llenó con dicho procedure...

Los datos quedan bien en el archivo de INFORME, sin embargo quiero realizar un count(xx) a la tabla para informar en el archivo de log..

Código
  1. Echo ....Creando archivo                        >>%4\LOG_CUGE_%6.log
  2. Echo -------------------------------------------------------------------------- >>%4\LOG_CUGE_%6.log
  3. DATE /T >>%4\LOG_CUGE_%6.log
  4. TIME /T
  5.  
  6.  
  7. REM ----------------------------------------------------------------------------
  8. REM SQL A TABLA CON LA INFO
  9. REM ----------------------------------------------------------------------------
  10. set Subproceso=SQLT1
  11.  
  12. BCP "select * from BGES_CTL_JUD.dbo.TMP_TXT_LOG_CUGE " queryout %5\%v_NOM_REP% -S%3 -U%1 -P%2 -c -e>> %4\LOG_CUGE_%6.log
  13.  
  14. rem ----------------------------------------------------------------------------------------------
  15. Echo .
  16. REM ----------------------------------------------------------------------------
  17. REM CAPTURA ERROR
  18. REM ----------------------------------------------------------------------------
  19. set CodErr=%errorlevel%

donde v_NOM_REP es la ruta y nombre del archivo de infrome y LOG_CUGE_.. es el archivo Log.

Hago esto (que obviamente está mal, porque desconozco como funciona...)
Código
  1. set %v_cant_Un%=select COUNT(*) from BGES_CTL_JUD.dbo.TMP_CUGE
  2.  
  3. Echo -------------------------------------------------------------------------- >>%4\LOG_CUGE_%6.log
  4. Echo Universo de casos [%v_cant_Un%]                    >>%4\LOG_CUGE_%6.log
  5. Echo -------------------------------------------------------------------------- >>%4\LOG_CUGE_%6.log

Por la ayuda de antemano Muuuuchas gracias...


Elektro H@cker: Usa el botón Insertar código, hay unas normas.


« Última modificación: 30 Mayo 2012, 17:34 pm por EleKtro H@cker » En línea

Paciencia, cualidad que hay que saber cultivar....
PERO YA!!!!
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.709



Ver Perfil
Re: asignar variables en .bat
« Respuesta #1 en: 30 Mayo 2012, 17:43 pm »

Código
  1. set %v_cant_Un%=select COUNT(*) from BGES_CTL_JUD.dbo.TMP_CUGE
  2.  
  3. Echo -------------------------------------------------------------------------- >>%4\LOG_CUGE_%6.log
  4. Echo Universo de casos [%v_cant_Un%]                    >>%4\LOG_CUGE_%6.log
  5. Echo -------------------------------------------------------------------------- >>%4\LOG_CUGE_%6.log

Estás usando simbolos de porcentaje al setear la variable, Elimínalos.

Por lo demás, No se que intentas hacer con esa variable, No se a que te refieres con "count(xx)" (¿Un contador? ¿Contador para contar el que?) Pero deja esto así:

Código
  1. set "v_cant_Un=select COUNT(*) from BGES_CTL_JUD.dbo.TMP_CUGE"
  2.  
  3. (
  4. Echo --------------------------------------------------------------------------
  5. Echo Universo de casos [%v_cant_Un%]
  6. Echo --------------------------------------------------------------------------
  7. )>>%4\LOG_CUGE_%6.log
  8.  

Saludos


En línea


viejari

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: asignar variables en .bat
« Respuesta #2 en: 30 Mayo 2012, 18:53 pm »

Elektro H@cker: Primero....disculpa no haber utilizado el boton de insertar codigo, no lo habia visto...

Segundo: tal como agregaste con select count(*) es lo que necesito, utilicé tu codigo, sin embargo el log de salida no me informa nada.., inclusive agregué los parametros de usuario y clave...
Código:

set "v_cant_Un=select COUNT(*) from BGES_CTL_JUD.dbo.TMP_CUGE" -U%1 -P%2 -S%3
 
(
Echo --------------------------------------------------------------------------
Echo Universo de casos [%v_cant_Un%]
Echo --------------------------------------------------------------------------
)>>%4\LOG_CUGE_%6.log

Y cuando pasa por esta sentencia, el log no registra nada mas....

Código:
----------------------------------------------------------------------------
SE EJECUTA PROCEDIMIENTO ALMACENADO
----------------------------------------------------------------------------
....Creando archivo                       
--------------------------------------------------------------------------
30-05-2012

Starting copy...
1000 rows successfully bulk-copied to host-file. Total received: 1000
1000 rows successfully bulk-copied to host-file. Total received: 2000

2758 rows copied.
Network packet size (bytes): 4096
Clock Time (ms.) Total     : 1      Average : (2758000.00 rows per sec.)


Gracias por tu aporte!!!
En línea

Paciencia, cualidad que hay que saber cultivar....
PERO YA!!!!
viejari

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: asignar variables en .bat
« Respuesta #3 en: 30 Mayo 2012, 19:26 pm »

Mmm parece que no me expliqué muy bien, lo que yo necesito es que en la variable v_cant_Uni quede el valor del count(*), con el codigo mencionado arriba, la variable queda con valor select count(*).......

Aaa, el codigo en () no funciona, ahi es donde se me cortaba para mi log, los saqué y funciona bien, salvo por el valor de la variable que no se como rescatarlo.

Gracias!!!!
En línea

Paciencia, cualidad que hay que saber cultivar....
PERO YA!!!!
viejari

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: asignar variables en .bat
« Respuesta #4 en: 31 Mayo 2012, 00:03 am »

Estimados todos, logré salir del entuerto, les comparto mi solución por si a alguien le sirve...

1° realicé bcp a un .log de paso con el dato que viene del query
2° Copié el resultado en mi log principal
3° Borré el log de paso

Y listo, no sé si sea la mejor solución, pero es la que encontré por ahora...

Si alguien quiere que le comparta el codigo me avisan.

Saludos y gracias..
En línea

Paciencia, cualidad que hay que saber cultivar....
PERO YA!!!!
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[BATCH] asignar variables con set desde un for /f[Solucionado]
Scripting
haveavigar 5 5,400 Último mensaje 14 Enero 2011, 20:31 pm
por leogtz
Asignar variables de un webbrower aVB.
Programación Visual Basic
Menal_mur 0 957 Último mensaje 19 Agosto 2013, 17:25 pm
por Menal_mur
Asignar valores de un fichero a variables de una funcion
Programación C/C++
joelujos 0 641 Último mensaje 6 Diciembre 2015, 00:13 am
por joelujos
Como asignar tiupo a muchas variables
Programación C/C++
CBFD 9 2,748 Último mensaje 10 Mayo 2016, 11:52 am
por CBFD
Asignar tipo a variables en C++
Programación C/C++
@XSStringManolo 2 247 Último mensaje 10 Abril 2021, 18:36 pm
por @XSStringManolo
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines