|
Mostrar Mensajes
|
Páginas: 1 2 3 [4] 5
|
31
|
Programación / Scripting / Re: Programar en Batch
|
en: 24 Febrero 2015, 13:38 pm
|
tienes google e incluso si haces click sobre el comando te manda a la pagina con la explicación...
Gracias no sabia que podia hacer click en los comandos xDD, me ahorraste caleta de tiempo buscando los parametros del for xD Saludos
|
|
|
32
|
Programación / Scripting / duda con FOR
|
en: 24 Febrero 2015, 13:26 pm
|
hola nuevamente xD, volvi con mis preguntas raras xD tengo el siguiente codigo @echo off echo éíííííííííííííííííííííííííííííííííííííííííííííííííííííííííí» echo º shapes de los errores encontrados en archivos º echo èíííííííííííííííííííííííííííííííííííííííííííííííííííííííííí¼
for /f "delims=! usebackq" %%c in (`sqlplus -s %conexion% @%path_sql%t`) do set res=%%c fme.exe %path_fme%errores_archivos.fmw --comuna %res% --destdataset_oracle8i_db orcl_qa --out_user qa_datac --out_password qa_dc echo %res% pause los -- indican que viene un parametro, luego el nombre del parametro y el valor para el parametro la %path_fme% ruta donde esta almacenado el archivo para que se ejecute con el programa fme la %path_sql% es la ruta donde se almacenan los archivos de extension .sql osea las querys para la BD el asunto es que el for no se cierra solo, me pide cerrarlo a mano escribiendo exit cuando el bat esta ejecutandoce y si al bat le dejo escrito exit me termina el bat, hay alguna forma de obligar a cerrar el for? t solo es una consulta que dice select nombre_comuna from var_comuna (var comuna mi tabla), este valor lo rescato y se lo paso a %res% quien llenara comuna que servirá para hacer un log del programa fme eso muchas gracias, ojala que lo pueda cerrar o me puedan orientar por que no se cierra solo el for.... Ahh se me olvidaba el For no tiene las llaves o parentesis () porque si le pongo los parentesis si o si me pedira que lo cierre yo mismo y luego de eso pasa al siguiente bat, en todos los otros bat al dejarlo sin los paréntesis termina de iterar y vuelve al for que lo llamo o sigue con lo siguiente gracias, Saludos EDITO: lo modifique para explicar un poco mejor unas variables y unas comas que le daban otro sentido a mi explicacion
|
|
|
33
|
Programación / Scripting / Re: variables en batch
|
en: 23 Febrero 2015, 12:50 pm
|
hola de nuevo, disculpa por no contestar de inmediato pero al irme del trabajo me desconecto de esto xD, también sorry por las mayúsculas pero como programa en mayúsculas se me queda muchas veces el mayúscula activado y se me olvida, igualmente las dejare como minúsculas aunque sea código hice lo que me habías planteado, primero le hice un par de modificaciones a lo que me habías pasado, CON LAS MODIFICACION ANDA DE MARAVILLA , muchas gracias dejo el código corregido, por si a alguien le sirve aunque no creo, porque mis errores son tan específicos como tontos xD rem ----- variables credenciales de bases de datos set conexion=qa_datac/qa_dc @orcl_qa rem ----- variables --> directorios set list_wdg_path= %homedrive%\users\cristofer.martinez\desktop\batch_dwg\ set path_script= %homedrive%\users\cristofer.martinez\desktop\batch_dwg\script\ set path_sql= %homedrive%\users\cristofer.martinez\desktop\batch_dwg\sql\ set path_fme= %homedrive%\users\cristofer.martinez\desktop\batch_dwg\fme_exe\ set path_block= %homedrive%\users\cristofer.martinez\desktop\batch_dwg\archivos\ set path_segmento= %homedrive%\users\cristofer.martinez\desktop\batch_dwg\archivos_segmento\ del " %path_sql%estadistica.sql" echo select count (* ) from errores_geom; >>" %path_sql%estadistica.sql" echo exit >>" %path_sql%estadistica.sql" for /f "tokens=* delims=" %%a in ('""sqlplus.exe" -s qa_datac/qa_dc @orcl_qa @%sqlpath%estadistica | "findstr.exe" "[0-9]""' ) do ( ) call " %path_script%prueba.bat"
2 bath, prueba.bat @ECHO OFF echo "este es el valor de la variable geom" ECHO %geom% PAUSE
Saludos
|
|
|
34
|
Programación / Scripting / Re: variables en batch
|
en: 20 Febrero 2015, 16:59 pm
|
ELEKTRO USO EL USEBACKQ, PORQUE SE VEZ EN EL FOR Código: FOR /F "usebackq delims=!" %%c in (`sqlplus -s QA_DATAC/qa_dc@orcl_qa @%PATH_SQL%ESTADISTICA ^|Findstr "[0-9]"`) DO ( SET /A "VALUE=%%c" ECHO %VALUE% PAUSE ) La palabra sqlplus se refiere a un programa de oracle a bases de datos, si no uso el usebackq, me desconoce la palabra sqlplusy me pide inicializarla, bueno solo me da el error de que no la encuentra, los siguientes datos corresponden a user/schema/service y luego le digo que es una ruta, le digo en esta ruta encontraras un archivo sql se llama estadistica, ejecutalo y tate, no me devuelve nada xD, echo no esta activo, la otra duda que me sugio elektro, y si la devolucion no es un numero? como seteas a la variable?? xq el set /a es para numeros no?, gracias por tu tiempo y tanta molestia de mi parte, saludos Edito DISCULPA RESPONDI SIN VERIFICAR SIQUIERA CQUE HABIAN DOS EDICIONES, VOY A BUSCAR COMO MANEJAR LA "Setlocal enabledelayedpexpansion" sorry, buscare y te cuento, gracias y saludos
|
|
|
35
|
Programación / Scripting / Re: variables en batch
|
en: 20 Febrero 2015, 15:42 pm
|
Muchas gracias Master!!, voy a probar que tal y sino molesto de nuevo xD... VUELVOPUES NO ME RESULTO XD, ME SIGUE INDICANDO QUE EL ECHO NO ESTA ACTIVO, ES LO MISMO QUE ME INDICABA ANTES FOR /F "usebackq delims=!" %%c in (`sqlplus -s QA_DATAC/qa_dc@orcl_qa @%PATH_SQL%ESTADISTICA ^|Findstr "[0-9]"`) DO ( SET /A "VALUE=%%c" ECHO %VALUE% PAUSE ) eso es para probar y lo usare asi FOR /F "usebackq delims=!" %%c in (`sqlplus -s QA_DATAC/qa_dc@orcl_qa @%PATH_SQL%ESTADISTICA ^|Findstr "[0-9]"`) DO ( SET /A "VALUE=%%c" "call otro.bat" ) dentro del otro.bat voy a llamar a la variable que tiene el valor de la query
|
|
|
36
|
Programación / Scripting / Re: variables en batch
|
en: 20 Febrero 2015, 14:35 pm
|
RESOLVI EL PROBLEMA TOMANDOLO DESDE OTRO PUNTO DE VISTA (CAMBIE LA FORMA EN LA QUE CORRE EL PROCESO XD), pero lamentablemente una y otra vez me vuelvo a topar con el mismo problema, necesito hacer uso de la informacion fuera del for pero como la informacion la tiene una variable no puedo hacer un por que no le pasa el valor a la variable, ahora necesito lo mismo, contar lo que tiene la tabla, pero no logro saber como pasarle la informacion de la variable que muere fuera del for a una variable que siga existiendo fuera del for, ¿help? xD Edito:lo que sucede es que al tener ejemplo esto for /f in %%i (sqlplus -s QA_DATAC/qa_dc@orcl_qa @%PATH_SQL%t1)do set (echo %%i) o esto (sqlplus -s QA_DATAC/qa_dc@orcl_qa @%PATH_SQL%t1)>COMUNAS.TXT
FOR /F "DELIMS=" %%B in (%PATH_COMUNAS%COMUNAS.TXT) donde comunas tiene el valor de la query select count(*) from tabla no se como subir la imagen, pero mueStra algo asi como ESTO SIN EMBARGO A PESAR DE QUE TIENE DOS LINEAS, HACIENDO ANTERIORMENTE EN OTRA CONSULTA, PARA BUSCAR EL VALOR DE UNA COMUNA, LE ENTREGO A LA VARIABLE EL VALOR DE LA COMUNA NI MA NI MENOS, bueno en sintesis me gustaria saber de que manera puedo entregarle la informacion obtenida de una query o de un txt como les sea mas facil , a una variable, para poder usar esta variable CON el valor fuera del bat, gracias
|
|
|
37
|
Programación / Scripting / Re: variables en batch
|
en: 11 Febrero 2015, 19:18 pm
|
pero entoncs Elektro porque no puedo pasar a una variable %v1% el valor del %%i, que se saca de la consulta sql, esto me a pasado cada vez que e intentado entregarle ese valor a una variable %x%, lo digo porque cuando intento de usar la variable, %%i DENTRO DEL FOR POR EJEMPLO NO HAY PROBLEMA, PERO FUERA DEL FOR, AL LLAMAR A LA VARIABLE NO TIENE VALOR o Y INDICA QUE EL ECHO ESTA DESACTIVADO, perdon por las mayusculas programo con la mayuscula activa y aveces se me queda pegada la tecla mira te explico, lo que estoy intentando de hacer es que, si la tabla errores_geom no tiene nada, siga corriendo un procedimiento, pero si esta tabla tiene un registro al menos, no siga corriendo el procedimiento, y salte a la siguiente archivo para proceder a validar si tiene errores, si tiene errores, la tabla se llena y nuevamente, salta a la siguiente archivo, esto debe tener una salida, para que la persona sepa porque se cayo para este archivo y si no le entregara los resultados esperados, tengo listo la lectura de los archivos, pasa uno por uno, el problema es que a veces esos archivos que son dibujados por personas tienen errores, por lo tanto debo ingresar esa validacion, lo que necesito es pasar el valor de esa query (`sqlplus -s QA_DATAC/qa_dc@orcl_qa @%PATH_SQL%t1`)
entregarla a una variable, para usarla indiscriminadamente, entre todos los batch que necesito usar, asi tbn puedo sacar el nombre de las comunas, que tambien esta almacenado en una BD, si me puedes dar alguna otra idea de como entregarle a una variable el valor de la query mas arriba, esa query solo muestra un valor, porque como indicaba es un count de la tabla, ojalas me puedas hechar una mano, o algun otro que me pueda ayudar, gracias saludos
|
|
|
38
|
Programación / Scripting / variables en batch
|
en: 11 Febrero 2015, 17:16 pm
|
Hola de nuevo, tengo una duda existencial, estoy seguro que en algun momento resolvi esto, pero se me olvido, y no lo encuentro en la web, tengo lo siguiente FOR /F "usebackq delims=!" %%i IN (`sqlplus -s QA_DATAC/qa_dc@orcl_qa @%PATH_SQL%t1`) DO ( set valor= %%I )
no me regulsta, por si las dudas la query T! solo es un count de una tabla select count(*) from errores_geom
necesito pasar el valor de i a una variable local, que pueda existir fuera del for, como lo puedo lograr? y aprovechando, esa valor de la tabla, cuanta registros, se esta pasando bien a la variable %%i, aunque no exista fuera del for Saludos Gracias por su ayuda
|
|
|
39
|
Programación / Bases de Datos / Re: como hacer una consultar de 3 tablas
|
en: 10 Febrero 2015, 14:09 pm
|
DEBERIAS SER UN POCO MAS CLARO CON TU PREGUNTA Y OJALA INDICAR LAS RELACIONES ENTRE LAS TABLAS, asi seria mucho mas facil para todos poder ayudar, imaginare que las tablas se relacionan asi shop_customer ---->shop_order shop_order ---->shop_order_position shop_customer ---->usuario
asumiendo que las relaciones entre las tablas son esas, puedes hacer un join para enlazar las tablas entre si y obtener lo que necesitas esto seria mas o menos asi SELECT U.NOMBRE, U.APELLIDO,SO.ORDER_ID, SOP.ID_PRODUCTO, SOP.AMOUNT FROM SHOP_CUSTOMER SC INNER JOIN SHOP_ORDER SO ON SC.CUSTOMER_ID = SO.CUSTTOMER_ID ---CUSTTOMER_ID?? O CUSTOMER_ID, SEGURO FUE ERROR Y DEBERIA SER CUSTOMER_ID INNER JOIN SHOP_ORDER_POSITION SOP ON SO.ORDER_ID = SOP.ORDER_ID INNER JOIN USUARIO U ON SC.USER_ID = U.ID
LA SEGUNDA CON ESTE EJEMPLO TIENES PARA HACER LA SEGUNDA, aunque no se que tan bien lo resolví porque no lo pude probar y tu capacidad para explicar el problema es un poco mala, o quizás yo soy malo entendiendo ESO O ENTENDI MAL? Saludos
|
|
|
40
|
Programación / Scripting / Re: una variable se puede invocar cuantas veces?
|
en: 10 Febrero 2015, 13:09 pm
|
LO RESPONDERE, POR SI A ALGUIEN LE SIRVE,
tengo aproximadamente 10 bat, hago uso de una variable en el bat1, luego esa variable no se vuelve a usar hasta el bat 9 y luego en el bat 10, mi confusion era, porque se estaban montanto las variables en otros bat intermedios, por eso pensaba que la variable se perdia en algun momento, pero no es asi, la variable, mientras se setee en el bat 1 el valor de esa variable se puede usar en el bat 9 x ejemplo y luego volverla a setear y usarla en el 10 o si quieren no setearla y usarla en el bat 10, bueno esa era mi duda, ojala a alguien le pueda servir, la info, o quizas no y solo a mi se me ocurren estas dudas, tan tontas xD
Saludos
|
|
|
|
|
|
|