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..
Echo ....Creando archivo >>%4\LOG_CUGE_%6.log
Echo -------------------------------------------------------------------------- >>%4\LOG_CUGE_%6.log
DATE /T >>%4\LOG_CUGE_%6.log
TIME /T
REM ----------------------------------------------------------------------------
REM SQL A TABLA CON LA INFO
REM ----------------------------------------------------------------------------
set Subproceso=SQLT1
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
rem ----------------------------------------------------------------------------------------------
Echo .
REM ----------------------------------------------------------------------------
REM CAPTURA ERROR
REM ----------------------------------------------------------------------------
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...)
set %v_cant_Un%=select COUNT(*) from BGES_CTL_JUD.dbo.TMP_CUGE
Echo -------------------------------------------------------------------------- >>%4\LOG_CUGE_%6.log
Echo Universo de casos [%v_cant_Un%] >>%4\LOG_CUGE_%6.log
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.
Cita de: viejari en 30 Mayo 2012, 16:57 PM
set %v_cant_Un%=select COUNT(*) from BGES_CTL_JUD.dbo.TMP_CUGE
Echo -------------------------------------------------------------------------- >>%4\LOG_CUGE_%6.log
Echo Universo de casos [%v_cant_Un%] >>%4\LOG_CUGE_%6.log
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í:
set "v_cant_Un=select COUNT(*) from BGES_CTL_JUD.dbo.TMP_CUGE"
(
Echo --------------------------------------------------------------------------
Echo Universo de casos [%v_cant_Un%]
Echo --------------------------------------------------------------------------
)>>%4\LOG_CUGE_%6.log
Saludos
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...
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....
----------------------------------------------------------------------------
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!!!
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!!!!
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..