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

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Descubrimiento en comando FOR [Batch]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Descubrimiento en comando FOR [Batch]  (Leído 2,225 veces)
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Descubrimiento en comando FOR [Batch]
« en: 16 Abril 2009, 22:09 pm »

Hola, siguiendo con el descubrimiento que ha hecho Carlos:
Citar
La utilidad de mi descubrimiento es que por ejemplo si antes declaraban:

Código:
Código:
for /f "tokens=1-4" %%Y in ("p1 p2 p3 p4") do (
echo %%Y%%Z...
)

y querían mostrar el token 1,2,3,4 solo podíamos mostrar el token 1 y 2, porque luego de %%Y viene %%Z y después ... no sabíamos que letra venía.

Entonces ahora podemos hacer:
Código:
Código:
for /f "tokens=1-4" %%Y in ("p1 p2 p3 p4") do (
echo %%Y%%Z%%[%%\
)

He descubierto que tambien podemos usar numeros en la variable del for, de la siguiente manera.

Código:
@echo off
for %%^1 in (
hola,
adios,
si,
no,
Ok,
bye
) do (
echo %%^1
)

Código:
for /l %%^6 in (1 1 10) do (
echo %%^6
)

Código:
for /d /r %%^2 in (*) do (
echo %%^2
)
Código:
for /f "tokens=1,2,3" %%^0 in ('ver') do (
echo.%%^0 %%^1 %%^2
)

Código:
for %%^1 in ("%~nx0") do (
echo %%~nxt^1
)


Código:
for /f "tokens=1" %%^7 in ('ver') do (
echo.%%^7
)
Esto no está documentado, al menos que yo sepa.

Rob Van der Woude :
Citar
Hi Leonardo,
 
Amazing! Yet another new feature discovered in CMD, after all these years...
I added your tip on my Clever Tricks page (http://www.robvanderwoude.com/clevertricks.php#FORListNumbers) with a link from the Program Flow section of my Batch Techniques page (http://www.robvanderwoude.com/battech.php#Flow).
 
Thanks again,
 
Rob
Citar
Leonardo Gutierrez Ramirez also found a way to use numbers as variables in a FOR loop:

    Hi, I have discovered that we can use numbers in the variable FOR command, like this:

    FOR /L %%ˆ6 IN (1 1 10) DO (
        ECHO %%ˆ6
    )

    FOR /D /R %%ˆ2 IN (*) DO (
        ECHO %%ˆ2
    )

    FOR /F "tokens=1,2,3" %%ˆ0 IN ('VER') DO (
        ECHO.%%ˆ0 %%ˆ1 %%ˆ2
    )

    FOR %%ˆ1 IN ("%~nx0") DO (
        ECHO %%~nxtˆ1
    )

    FOR /F "tokens=1" %%ˆ7 IN ('VER') DO (
        ECHO.%%ˆ7
    )

    FOR %%ˆ1 IN ("%~nx0") DO (
        ECHO %%~nxatdˆ1
    )

Combined with Carlos' extension of the available variables in FOR loops, we can now, in theory at least, nest up to 75 FOR loops!
Not that I would want to maintain such code...

Thanks Leo

http://www.robvanderwoude.com/clevertricks.php#FORListNumbers

http://www.robvanderwoude.com/battech.php#Flow

Saludos.


« Última modificación: 13 Agosto 2011, 06:43 am por Leo Gutiérrez. » En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Comando AT (Batch) « 1 2 »
Scripting
MK-Ultra 13 13,857 Último mensaje 24 Enero 2008, 03:32 am
por 43H4FH44H45H4CH49H56H45H
Comando for [batch]
Scripting
kraszic 8 13,000 Último mensaje 8 Julio 2008, 12:56 pm
por kraszic
Descubrimiento en comando for « 1 2 »
Scripting
_carlos_ 12 5,017 Último mensaje 16 Abril 2009, 11:43 am
por 0x0309
[BATCH] Bug comando for (eol)
Scripting
0x0309 2 4,987 Último mensaje 1 Abril 2009, 17:25 pm
por leogtz
[BATCH] Programar un batch con comando at
Scripting
WaAYa HaCK 5 3,404 Último mensaje 14 Septiembre 2011, 19:12 pm
por WaAYa HaCK
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines