Mostrando resultados del 1 al 6 de 6

Tema: [G][Batch][Duda] Se Puede Hacer Un "IF" dentro de un "FOR"?

  1. #1
    Miembro
    Fecha de Ingreso
    junio-2008
    Ubicación
    En Mi Casa :B
    Mensajes
    77

    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 ^^*!

  2. #2
    Experto Avatar de nax_hh
    Fecha de Ingreso
    junio-2008
    Ubicación
    En mi casa y tu?
    Mensajes
    2.602

    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

    Follow me on Twitter

    Ya no estoy por aqui

  3. #3
    Miembro
    Fecha de Ingreso
    junio-2008
    Ubicación
    En Mi Casa :B
    Mensajes
    77

    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

  4. #4
    Experto Avatar de nax_hh
    Fecha de Ingreso
    junio-2008
    Ubicación
    En mi casa y tu?
    Mensajes
    2.602

    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

    Follow me on Twitter

    Ya no estoy por aqui

  5. #5

    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 />

  6. #6
    Experto Avatar de nax_hh
    Fecha de Ingreso
    junio-2008
    Ubicación
    En mi casa y tu?
    Mensajes
    2.602

    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
    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...

    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

    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


    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

    Follow me on Twitter

    Ya no estoy por aqui

Temas Similares

  1. Respuestas: 29
    Último mensaje: 06-ago-2009, 06:39
  2. Respuestas: 20
    Último mensaje: 07-dic-2008, 05:24
  3. Respuestas: 6
    Último mensaje: 14-dic-2007, 16:22
  4. """EJEMPLO VISUAL BASIC PARA ENVIAR MAILS""""
    By angelsk in forum Visual Basic y Net
    Respuestas: 3
    Último mensaje: 31-ago-2005, 22:44
  5. AQUI les dejo un manual para ""SUB7""y"NetBus""
    By vart001 in forum Cursos y Ezines
    Respuestas: 8
    Último mensaje: 25-may-2005, 01:24

Normas de Publicación

  • No puedes crear nuevos temas
  • No puedes responder mensajes
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •