Comunidad Underground Hispana  

Retroceder   Comunidad Underground Hispana > Programacion > Batch


Respuesta Crear Nuevo Tema
 
Compartir en twitter LinkBack Herramientas Desplegado
Antiguo 09-oct-2009, 09:40   #1
Miembro
 
Fecha de Ingreso: junio-2008
Ubicación: En Mi Casa :B
Amigos 0
Mensajes: 77
Gracias: 5
Agradecido 2 veces en 1 mensaje
Predeterminado [G][Batch][Duda] Se Puede Hacer Un "IF" dentro de un "FOR"?

Hola a todos , espero esten bien ...... hay una duda que me asalta :-X, se puede hacer una comparación si una variable está vacía dentro de un FOR ? Ej:

Código:
For /F "Tokens=1,2 Delims=;" %%f In ('Type "Listado_Clientes.csv" ^| Find "%Rut_Cliente%"') Do (
If "%%f"=="" (Echo.&Echo Cliente No Encontrado.-&Pause >Nul 2>&1& Goto :BuscarClientes)
Echo.
Echo Rut		Nombre cliente
Echo %%f	%%g
Pause >Nul 2>&1
Goto :BuscarClientes
)
  
Por ejemplo ahí después de hacer el FOR en el archivo me muestra el Rut del cliente, pero quiero saber si la variable quedó vacía o no, para así poder saber si existe o no el cliente en el archivo, pero no hace la comparación u.u y solo me da los dos pauses :-\\, también probé con:

Código:
For /F "Tokens=1,2 Delims=;" %%f In ('Type "Listado_Clientes.csv" ^| Find "%Rut_Cliente%"') Do (
If Not "%%f"=="" (
Echo.
Echo Rut		Nombre cliente
Echo %%f	%%g
Pause >Nul 2>&1
Goto :BuscarClientes
) ELSE (
Echo.&Echo Cliente No Encontrado.-&Pause >Nul 2>&1& Goto :BuscarClientes
)
)
  
Pero ahí si que se cae el código xD, entonces ..... mi pregunta es ...

¿Cómo puedo saber si la variable %%f está vacía?, o ¿Cómo saber si no se encontró el cliente?


..........


Muchas Gracias de ante mano y saludos ^^*!
panxulingo está desconectado   Responder Citando
Antiguo 09-oct-2009, 10:49   #2
Experto
 
Avatar de nax_hh
 
Fecha de Ingreso: junio-2008
Ubicación: En mi casa y tu?
Amigos 28
Mensajes: 2.603
Gracias: 0
Agradecido 29 veces en 24 mensajes.
Predeterminado Re: [G][Batch][Duda] Se Puede Hacer Un "IF" dentro de un "FOR"?

si se puede...

Código:
@echo off

for /f "tokens=1,2 delims= " %%a in (a.txt) do (if not "%%b"=="" (echo %%a))
pause
  
teniendo en a.txt

Código:
12345 1
12344
  
devuelve:
Código:
12345
Presione una tecla para continuar . . .
  
salu2
nax
__________________


Gracias ubun

[Solo usuarios registrados pueden ver los links. REGISTRARSE]



Ya no estoy por aqui
nax_hh está desconectado   Responder Citando
Antiguo 09-oct-2009, 11:09   #3
Miembro
 
Fecha de Ingreso: junio-2008
Ubicación: En Mi Casa :B
Amigos 0
Mensajes: 77
Gracias: 5
Agradecido 2 veces en 1 mensaje
Predeterminado Re: [G][Batch][Duda] Se Puede Hacer Un "IF" dentro de un "FOR"?

Mira Nax, lo probé como tú me dices, pero se cae al no encontrar datos :S, y aunque tiene un "Pause" se sale y no me deja ver el error, mira así lo dejé:

Código:
For /F "Tokens=1,2 Delims=;" %%f In ('Type "Listado_Clientes.csv" ^| Find "%Rut_Cliente%"') Do (
If Not "%%f"=="" (
Echo.
Echo Rut		Nombre cliente
Echo %%f	%%g
Pause >Nul 2>&1
Goto :BuscarClientes
) ELSE (
Echo.&Echo Usuario Inexistente.-&Pause >Nul 2>&1
)
)
  
espero me puedas ayudar u.u
panxulingo está desconectado   Responder Citando
Antiguo 09-oct-2009, 11:50   #4
Experto
 
Avatar de nax_hh
 
Fecha de Ingreso: junio-2008
Ubicación: En mi casa y tu?
Amigos 28
Mensajes: 2.603
Gracias: 0
Agradecido 29 veces en 24 mensajes.
Predeterminado Re: [G][Batch][Duda] Se Puede Hacer Un "IF" dentro de un "FOR"?

aaa ok.. no me fijé el detalle...

abre una cmd ve a donde esta Listado_Clientes.csv y asle un type, y comprenderás porque se cierra >_<
__________________


Gracias ubun

[Solo usuarios registrados pueden ver los links. REGISTRARSE]



Ya no estoy por aqui
nax_hh está desconectado   Responder Citando
Antiguo 09-oct-2009, 12:03   #5
Gran Colaborador
 
Fecha de Ingreso: diciembre-2006
Amigos 0
Mensajes: 1.095
Gracias: 0
Agradecido 1 vez en 1 mensaje.
Predeterminado Re: [G][Batch][Duda] Se Puede Hacer Un "IF" dentro de un "FOR"?

no tendria que poner ^_ ? corrigeme n4x si me equivoco..
__________________
A veces sentimos que lo que hacemos es tan solo una gota en el mar, pero el mar sería menos si le faltara una gota.<br />Alguno se estima atrevido, cuando con otros se compara. Algunos creo que hubo tan discretos que no acertaron a compararse sino a sí mismos.<br />Nuestras acciones hablan sobre nosotros tanto como nosotros sobre ellas.<br />
cuban-hack está desconectado   Responder Citando
Antiguo 09-oct-2009, 12:46   #6
Experto
 
Avatar de nax_hh
 
Fecha de Ingreso: junio-2008
Ubicación: En mi casa y tu?
Amigos 28
Mensajes: 2.603
Gracias: 0
Agradecido 29 veces en 24 mensajes.
Predeterminado Re: [G][Batch][Duda] Se Puede Hacer Un "IF" dentro de un "FOR"?

Cita:
Iniciado por cuban-hack
no tendria que poner ^_ ? corrigeme n4x si me equivoco..
si te refieres a lo de 'type...' no.. esta bien así

edit: me acabo de dar cuenta lo que querias decir, no.. el simbolo _ funciona perfectamente
Cita:
C:\Documents and Settings\nax>set _=a

C:\Documents and Settings\nax>echo %_%
a
acabo de hacer algo... y me e quedado tonto un rato...

explico, lo que dije mas arriba que al hacer type a un .csv salen carácteres extraños me pasó al crear un archivo .csv y ponerle datos desde excel..

el caso es que para hacer otra prueva acabo de crear un txt

puse
12345;1
12344;

como en el ejemplo anterior, lo renombro a .csv

y siguiendo el mismo ejemplo
uso este code: (solo cambio el delims por
a.bat
Código:
 @echo off

for /f "tokens=1,2 delims=;" %%a in ('type a.csv ^| find "12345"') do (if not "%%b"=="" (echo %%a))
pause
  
y funciona perfectamente...

Cita:
C:\Documents and Settings\nax\Escritorio>a.bat
12345
Presione una tecla para continuar . . .


ahora un ejemplo de 2 types, uno creado con un .txt y cambiado la extención y otro creado directamente como .csv y agregado datos en el excel

Cita:
C:\Documents and Settings\nax\Escritorio>type a.csv
12345;1
12344;
C:\Documents and Settings\nax\Escritorio>type b.csv
PK♥♦¶ ! ºò¨Öä☺ ¶♠ ‼ ¦☺[Content_Types].xml ó┘☺(á ☻





╠T╔n┬0►¢WÛ?D¥V─ @Ѭ¬↕8t9ÂHð☼0± @,↕█‗♀¶
¥ôPP®ÊH4∟zIö┼oøg'ÒmYh£M┼ ¯lµ┤▒╦T╝¤^z¸"BRV½┬YH┼♫PîGÎW lþ☺#^m1§9æ⌂É↕│∟Jà▒¾`¨╦┬àR ◄
åѶ*[®%╚a┐⌂'3g ,§¿┬►úõ ▬j]P¶╝ÕÎ{%scE¶© »óJà‗¥0Ö"▬*7V Ú╣┼┬dá]Â.↓:F▼ @i╠☺¿,b▼♀3å
►▒1¶rö╝▒Ú`4D‼§ÞUò╠ Àà$v ¹Ù f☼ØDÈ`7§╩´äH╗☻░3ı®▀=Þü╣!Ì ♣×gÝkÇ1»¼gÇ╣±Ï┬ð×]{&▼.¼µ╬¡
:n ëį╗‗oy`«☻Þ)±I▓╝°v²Ä¦6ùc73↨ Ó³ü∟÷pÁ║íæ▓>ËGƒ ♥ PK♥♦¶ ! ÁU0#§ L☻ ♂ ╬☺
rels/.rels ó╩☺(á ☻

quizá no es un descubrimiento para ninguno... pero para mi si xD que no suelo trabajar con csv....

ahora creando ambos desde comandos, uno directamente como csv y el otro txt y luego renombrado


Cita:
C:\Documents and Settings\nax>echo 12345;a >b.csv

C:\Documents and Settings\nax>echo 12345;a >a.txt

C:\Documents and Settings\nax>ren a.txt a.csv

C:\Documents and Settings\nax>type a.csv
12345;a

C:\Documents and Settings\nax>type b.csv
12345;a

C:\Documents and Settings\nax>
ok.. me quedó claro xD agregar los datos desde excel hace que cambie el formato

salu2
nax
__________________


Gracias ubun

[Solo usuarios registrados pueden ver los links. REGISTRARSE]



Ya no estoy por aqui
nax_hh está desconectado   Responder Citando
Respuesta

Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder mensajes
No puedes subir archivos adjuntos
No puedes editar tus mensajes

Los Códigos BB están Activado
Las Caritas están Activado
[IMG] está Activado
El Código HTML está Desactivado
Trackbacks están Activado
Pingbacks están Activado
Refbacks están Activado



Temas Similares
Tema Autor Foro Respuestas Último mensaje
Reto a users que quieran, VOTACIONES ABIERTAS !!!!! """"" VOTEN """"" hack_crack Battle Arts 29 05-ago-2009 23:39
"""“""""cuidado con lo que deseas podría hascerse realidad”"""""" JMB Off-Topic 20 06-dic-2008 21:24
"""DUDA """BT info """SOFTware blothoo _-" errores del software !!! DARK_CROW Phreaking 6 14-dic-2007 08:22
"""EJEMPLO VISUAL BASIC PARA ENVIAR MAILS"""" angelsk Visual Basic y Net 3 31-ago-2005 15:44
AQUI les dejo un manual para ""SUB7""y"NetBus"" vart001 Cursos, Ezines y Textos Hacking 8 24-may-2005 18:24



Portal Hacker
Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.0