Abril 21, 2018, 07:24:31 am

Autor Tema: 「Aprendiendo a usar FOR」~ Principiantes ~ By JaAViEr!★  (Leído 23276 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado JaAViEr

  • ¡ Programming the world !
  • Colaborador
  • ****
  • Mensajes: 8218
  • http://ethereumchile.cl
    • Ver Perfil
    • Ethereum Chile
Tutorial Comando FOR - Principiantes - JaAViEr

Hola , Buen Día a todos.

Tras ver que varios miembros se complican con el comando FOR,
Pasaré a explicarles el FOR, FOR /F y FOR /L que son los más utilizados
luego de aprender esto entenderán el FOR /D y FOR /R...
Comencemos...
FOR Básico
El FOR es como una variable con varios contenidos por ejemplo:
Código: (dos) You are not allowed to view links. Register or Login
@echo off
FOR %%A IN (ELEMENTO1 ELEMENTO2) DO (
ACCIONES
)
%%A es la variable donde almacenamos los elementos...
En Elemento1 y Elemento2 podemos modificar por lo que quieramos y en
las acciones las cosas que deseamos hacer con esos elementos.
En el IN () Deben ir los elementos, separados por comas, espacios, etc. Dentro
del DO () van las acciones a realizar sobre los elementos.
Un Sencillo ejemplo:
Código: (dos) You are not allowed to view links. Register or Login
@echo off
FOR %%A IN (Javier FROM CPH) DO (
echo.%%A
)

Como verán nos dá la salida
Javier
FROM
CPH
Puesto que hemos decidido hacer un echo. mostrando
los elementos almacenados en la Variable %%A , cada vez
que recorre un elemento, vuelve al inicio y comienza con el segundo
así hasta terminar el bucle.
Otros ejemplos:
Código: (dos) You are not allowed to view links. Register or Login
@echo off
FOR %%A IN (archivo1.txt archivo2.txt) DO (
DEL /F /Q /S %%A
)
Lo que borraría el archivo1.txt y archivo2.txt pues esos son los elementos
Y la acción a realizar con ellos es del /F /Q /S.

Ven que sencillo es ?

FOR /L

El Parametro /L es un como un aumentador, lo utilizamos
para evitar un código largo como:
Código: (dos) You are not allowed to view links. Register or Login
@echo off
echo.Hola
echo.Hola
echo.Hola
echo.Hola
echo.Hola
Y con FOR /L :
Código: (dos) You are not allowed to view links. Register or Login
@echo off
FOR /L %%A IN (1,1,5) DO (
echo.Hola
)

Es la misma salida pero uno es más corto y simple.
Como ven el IN (1,1,5) Significa:
Comienza en el número 1, luego vamos de 1 en 1 hasta
llegar al número 5.
Sin FOR se puede hacer con un IF pero es más largo:
Código: (dos) You are not allowed to view links. Register or Login
@echo off
set/a"count=0"
:count
set/a"count+=1"
echo.Hola
if %count% EQU 5 (exit/b)
goto:count
En resumidas palabras el FOR /L nos sirve para
hacer un ciclo un determinado número de veces de manera
corta y sencilla.
Trabaja igual que el FOR Básico:
FOR %%A <- Guardamos los datos en %%A los cuales son solo utilizables en el DO
/L <- Es el parametro que utilizamos.
IN (1,1,5) <- Son los elementos
DO ( echo. Hola ) <- Son las acciones a trabajar con los elementos:
Código: (dos) You are not allowed to view links. Register or Login
@echo off
echo.Hola 10 veces con FOR /L:
FOR /L %%A IN (1,1,10) DO (
echo.Hola %%A
)
Salida:

No olviden que cualquier duda solo deben consultar en el mismo post.

FOR /F

Este FOR /F es más extenso pues posee tokens, delims , eof, skip.
Por ahora les explicaré el tokens y el skip pues ando corto de tiempo.
Empezamos con un ejemplo básico y luego lo explico:
Código: (dos) You are not allowed to view links. Register or Login
@echo off
FOR /F "tokens=1" %%A IN ('echo.Hola soy Javier') DO (echo.%%A)
Salida:

El tokens es como querer decir ... Uso el primer string hasta que haya un delimitador(espacio coma o lo que sea)
Es como sinonimo de "palabra"..
Lo que nos dá de salida:
Hola
Pues de la cadena: Hola soy Javier solo usamos el token 1, osea la primera palabra
Hola       soy         Javier
token1   token2     token3
Con el mismo ejemplo pero otros tokens y dos a la vez:
Código: (dos) You are not allowed to view links. Register or Login
@echo off
FOR /F "tokens=2,3" %%A IN ('echo.Hola soy Javier') DO (echo.%%A %%B)

Como ven solo usamos el token 2 y 3 por lo que si declaramos %%A , %%A almacenará el primer token y %%B el segundo token y el Hola no es mostrado
porque no especifiqué el token 1.
Si ponemos "tokens=*" Mostraremos todo el texto...
Manipulando archivos:
Para manipular archivos solo hace falta poner el nombre del archivo, sin apostrofe (')
Código: (dos) You are not allowed to view links. Register or Login
@echo off
FOR /F "tokens=*" %%A IN (archivo.txt) DO (echo.%%A)
Lo que nos daría el mismo efecto que un type archivo.txt
Si se fijan y ponen en el archivo.txt:
Código: You are not allowed to view links. Register or Login
Tutorial FOR By JaAViEr
Y en el FOR:
Código: (dos) You are not allowed to view links. Register or Login
@echo off
FOR /F "tokens=1" %%A IN (archivo.txt) DO (echo.%%A)

Solo mostrará el primer string del archivo.txt osea Tutorial.
Recuerden que este debe existir primero.
Cuando queremos manipular comandos utilizamos el apostrofe '

Usaremos DIR en este ejemplo, la salida en este PC del comando dir es:

Código: (dos) You are not allowed to view links. Register or Login
@echo off
@echo off
FOR /F "tokens=1 skip=4" %%A IN ('dir') DO (echo.%%A)

Como ven solo nos dará las fechas ...
El Skip lo explico de inmediato:

pues el token 5 es equivalente a la quinta palabra del "dir" lo que es el nombre de los archivos || carpetas.
En un proximo tutorial Medio - Avanzado explicaré como mezclar
FOR /F con find y otras cosas más.
Por ahora sigo con el SKIP:
En un Archivo tenemos el contenido:
Código: You are not allowed to view links. Register or Login
Hola a
Todos los
del Foro
Y solo queremos mostrar de la segunda línea en adelante y nos queremos saltar la primera línea, para ello especificaremos el skip=1:
Código: (dos) You are not allowed to view links. Register or Login
@echo off
FOR /F "tokens=* skip=1" %%A IN (archivo.txt) DO (echo.%%A)
La salida:
Código: You are not allowed to view links. Register or Login
Todos los
del Foro
Dirán algunos... Porqué ?
Explicamos...
tokens=* <- Utilizamos todos los string que estan dentro del archivo...
skip=1 <- Nos saltamos una línea y de ahí en adelante mostrar los strings...
En resumidas palabras el skip=X es para saltarse líneas pero está casi
obsoleto porque utilizamos el FOR /F con FIND y nos simplifica todo, pero
eso es algo que veremos en el tutorial Medio-Avanzado.
Que sucede si cambiamos los tokens y skip del ejemplo anterior  ?:
Código: (dos) You are not allowed to view links. Register or Login
@echo off
FOR /F "tokens=2 skip=2" %%A IN (archivo.txt) DO (echo.%%A)
Salida:

Código: You are not allowed to view links. Register or Login
Foro
Porqué ?
pues sencillo nos hemos saltado dos líneas de este contenido
Código: You are not allowed to view links. Register or Login
Hola a
Todos los
del Foro
Lo cual nos deja:
Código: You are not allowed to view links. Register or Login
del Foro
y como expliqué anteriormente y lo vuelvo a hacer...
  del       Foro
token1   token2
Entonces nosotros tomamos ese token2 y lo mostramos en pantalla
Dandonos el resultado : Foro
Pasemos al poco utilizado eol...
Este ejemplo lo haré con un archivo.txt con el contenido:
Código: You are not allowed to view links. Register or Login
Hola chicos
de portalhacker
un saludo
Lo que hace el eol es tomar un caracter como comentario...
ese caracter nosotros lo especificamos así: eol=X
Ojo que este es sensible a mayusculas y minusculas, por lo que
no es lo mismo "H" que "h"
Entonces si ese caracter se encuentra al inicio del token1 de cada
línea, se saltará esa línea porque será tomada de comentario.
Mejor les dejo un ejemplo...
Recuerden que archivo.txt es el contenido anteriormente especificado.
Veamos:
Código: (dos) You are not allowed to view links. Register or Login
@echo off
FOR /F "tokens=* eol=H" %%A IN (archivo.txt) DO (
echo.%%A
)
La salida será:
Código: You are not allowed to view links. Register or Login
de portalhacker
un saludo
Porqué ?.
Como anteriormente les dije, si encuentra el caracter de los primeros
en el primer token, toda la línea será tomada como comentario, por lo
que no es mostrada...
Probemos cambiando el eol por eol=d...
Como deberían estár pensando, se saltara la línea
"de portalhacker"
Pues:
  de    portalhacker
token1    token2
Y en el token1 encontró que el primer caracter es "d"...
Ya vieron que sencillo es esto del FOR :D


Ejemplos
Obteniendo IP :
Código: (dos) You are not allowed to view links. Register or Login
@echo off
FOR /F "tokens=14" %%A IN ('ipconfig ^| find /i "n IP."') DO (
echo.%%A
)
Obtener solo nombre de archivos y directorios de la carpeta actual:
Código: (dos) You are not allowed to view links. Register or Login
@echo off
FOR /F "tokens=4 skip=7 eol=E" %%A IN ('dir') DO (echo.%%A)
Luego agrego más...

Cualquier duda consulten aquí...


Saludos.
« Última modificación: Noviembre 13, 2010, 12:30:35 am por JaAViEr »
¡MI TWITTER You are not allowed to view links. Register or Login!
You are not allowed to view links. Register or Login !

Desconectado Mr.Lerzep

  • Yo vivo en CPH
  • ***
  • Mensajes: 723
  • Sexo: Masculino
  • En el bloque.
    • Ver Perfil
Re: Aprendiendo a usar FOR - Principiantes - By JaAViEr
« Respuesta #1 en: Octubre 20, 2010, 12:35:55 pm »
Exelente explicaciób amigo , nunca habia entnedido lo de los tokens .


Salu2 y Gracias.
« Última modificación: Noviembre 21, 2010, 09:51:56 pm por Mr.Lerzep »

Desconectado Kracker51

  • Me das tu password?
  • **
  • Mensajes: 311
  • Sexo: Masculino
  • SELECT ALL FROM Hackers WHERE NameId='Kracker51';
    • Ver Perfil
Re: Aprendiendo a usar FOR - Principiantes - By JaAViEr
« Respuesta #2 en: Octubre 20, 2010, 12:49:22 pm »
Muy bien men espero que luego expliques lo de Skip y Eof
Salu2!!!
#include <iostream>
Int main()
    {
        Do
            {
                cout<<"FUCK"<<endl;
            }while (true〓true)
        Return 0;
    }

Desconectado JaAViEr

  • ¡ Programming the world !
  • Colaborador
  • ****
  • Mensajes: 8218
  • http://ethereumchile.cl
    • Ver Perfil
    • Ethereum Chile
Re: Aprendiendo a usar FOR - Principiantes - By JaAViEr
« Respuesta #3 en: Octubre 20, 2010, 03:07:15 pm »
Pero vamos..
Han entendido bien ?
Si no es así os pongo más ejemplos.

Desconectado Mr.Lerzep

  • Yo vivo en CPH
  • ***
  • Mensajes: 723
  • Sexo: Masculino
  • En el bloque.
    • Ver Perfil
Re: Aprendiendo a usar FOR - Principiantes - By JaAViEr
« Respuesta #4 en: Octubre 20, 2010, 03:11:01 pm »

Si pone 523.200.001 ejemplos mas  ;) :) , no mentira si entendi enserio lo de los tokens :D

Salu2 Javi.

Desconectado JaAViEr

  • ¡ Programming the world !
  • Colaborador
  • ****
  • Mensajes: 8218
  • http://ethereumchile.cl
    • Ver Perfil
    • Ethereum Chile
Re: Aprendiendo a usar FOR - Principiantes - By JaAViEr
« Respuesta #5 en: Octubre 20, 2010, 06:27:32 pm »
Agregué imágenes...


Saludos.

Desconectado JaAViEr

  • ¡ Programming the world !
  • Colaborador
  • ****
  • Mensajes: 8218
  • http://ethereumchile.cl
    • Ver Perfil
    • Ethereum Chile
Re: Aprendiendo a usar FOR - Principiantes - By JaAViEr
« Respuesta #6 en: Octubre 21, 2010, 04:15:54 am »
Muchas Gracias.
Cuando tenga más tiempo añado más contenido e imágenes ...
Otro día escribiré el uso de FOR /F "tokens=*" %%A IN ('type archivo.txt ^| find /i "Cadena"') DO (echo.%%A)
Lo que nos evita el uso de SKIP , verán que es util...

Saludos.

Desconectado Root@NTC0394:~$

  • Spammer trucho
  • Yo vivo en CPH
  • ***
  • Mensajes: 491
  • Sexo: Masculino
  • El Precio del Poder
    • Ver Perfil
    • NTC0394.com.ar
Re: Aprendiendo a usar FOR - Principiantes - By JaAViEr
« Respuesta #7 en: Octubre 21, 2010, 01:56:54 pm »
Este Tutorial Me Dio La Idea De Hacer Un Antivirus En Batch
You are not allowed to view links. Register or Login
A la Sandia calada dulce y colorada ♪
SELECT ALL FROM LaConchaDeTuMamá WHERE Visitantes='NTC0394';
[img width

Desconectado Kracker51

  • Me das tu password?
  • **
  • Mensajes: 311
  • Sexo: Masculino
  • SELECT ALL FROM Hackers WHERE NameId='Kracker51';
    • Ver Perfil
Re: Aprendiendo a usar FOR - Principiantes - By JaAViEr
« Respuesta #8 en: Octubre 21, 2010, 03:45:24 pm »

Pues declarate la competencia del Nod32 jejeje

Desconectado Sthefano02

  • CPH
  • *
  • Mensajes: 2950
  • Sexo: Masculino
  • Somos todos ~
    • Ver Perfil
    • Underc0de Foro
Re: Aprendiendo a usar FOR - Principiantes - By JaAViEr
« Respuesta #9 en: Octubre 21, 2010, 03:47:40 pm »
Con batch al único que le podemos hacer competencia es al Panda xD :P
El conocimiento es libre para todos

Visitanos!

Desconectado Mr.Lerzep

  • Yo vivo en CPH
  • ***
  • Mensajes: 723
  • Sexo: Masculino
  • En el bloque.
    • Ver Perfil
Re: Aprendiendo a usar FOR - Principiantes - By JaAViEr
« Respuesta #10 en: Octubre 21, 2010, 04:45:26 pm »

Yo la tuve esa idea y publique , jajaj creeme que es dificil hacer un AV Batch , en Batch.

Salu2.

Desconectado hanlly

  • Yo vivo en CPH
  • ***
  • Mensajes: 505
    • Ver Perfil
Re: Aprendiendo a usar FOR - Principiantes - By JaAViEr
« Respuesta #11 en: Octubre 21, 2010, 05:11:36 pm »
hey!! esta super sencillo de aprender... pero me gustaria saber algo... como puedo obtener solo una linea?? por ejemplo:

tengo archivo.txt con el contenido:

Código: You are not allowed to view links. Register or Login
hola todos
como estan?
espero que bn

como puedo obtener SOLO la linea 2??
You are not allowed to view links. Register or Login

Desconectado JaAViEr

  • ¡ Programming the world !
  • Colaborador
  • ****
  • Mensajes: 8218
  • http://ethereumchile.cl
    • Ver Perfil
    • Ethereum Chile
Re: Aprendiendo a usar FOR - Principiantes - By JaAViEr
« Respuesta #12 en: Octubre 21, 2010, 05:59:05 pm »
Teniendo en cuenta que archivo.txt tiene el contenido que recien nos especificas:
Código: (dos) You are not allowed to view links. Register or Login
@echo off
FOR /F "tokens=* skip=1" %%A IN (archivo.txt) DO (
echo.%%A
exit/b
)
Salida:
Código: You are not allowed to view links. Register or Login
como estan?
EDIT:
Actualizé el tutorial y añadí EOL

Saludos.
« Última modificación: Octubre 21, 2010, 06:29:46 pm por JaAViEr »

Desconectado hanlly

  • Yo vivo en CPH
  • ***
  • Mensajes: 505
    • Ver Perfil
Re: Aprendiendo a usar FOR - Principiantes - By JaAViEr [Actualizado :21/10/2010]
« Respuesta #13 en: Octubre 21, 2010, 07:29:46 pm »
hola Javier.. muchas gracias por explicarme esto :p tuve ke hacerle un pekeñito cambio al codigo...
si ponia exit /b se cerraba el programa.. no c pk.

luego de:
exit /b
)
puse un Pause... por si acaso era ke se salia SOLO del comando For.. pero se salia del programa copmleto... entonces hice esto

Código: You are not allowed to view links. Register or Login
@echo off
call:fore
pause
exit
:fore
FOR /F "tokens=* skip=1" %%A IN (archivo.txt) DO (
echo.%%A
exit/b
)

asi si funciona.. :p creo ke tendre ke hacer esas llamadas en vez de ejecutarlas directamente


Desconectado JaAViEr

  • ¡ Programming the world !
  • Colaborador
  • ****
  • Mensajes: 8218
  • http://ethereumchile.cl
    • Ver Perfil
    • Ethereum Chile
Re: Aprendiendo a usar FOR - Principiantes - By JaAViEr [Actualizado :21/10/2010
« Respuesta #14 en: Octubre 21, 2010, 07:52:13 pm »
Alomejor:
Código: (dos) You are not allowed to view links. Register or Login
@echo off
FOR /F "tokens=* skip=1" %%A IN (archivo.txt) DO (set x=%%A&goto:m)
:m
echo.%x%

Saludos.
« Última modificación: Octubre 21, 2010, 07:52:35 pm por JaAViEr »


exclamation
[Tutorial]Aprendiendo PyQT4 [Parte3]- JaAViEr (0x5d)

Iniciado por JaAViEr

0 Respuestas
939 Vistas
Último mensaje Febrero 11, 2012, 01:20:12 pm
por JaAViEr
exclamation
[Tutorial]Aprendiendo PyQT4 [Parte1]- JaAViEr (0x5d)

Iniciado por JaAViEr

0 Respuestas
898 Vistas
Último mensaje Febrero 11, 2012, 12:15:11 pm
por JaAViEr
exclamation
[Tutorial]Aprendiendo PyQT4 [Parte4]- JaAViEr (0x5d)

Iniciado por JaAViEr

4 Respuestas
1172 Vistas
Último mensaje Febrero 15, 2012, 11:59:25 am
por JaAViEr
exclamation
[Tutorial]Aprendiendo PyQT4 [Parte2]- JaAViEr (0x5d)

Iniciado por JaAViEr

0 Respuestas
870 Vistas
Último mensaje Febrero 11, 2012, 01:12:37 pm
por JaAViEr
exclamation
Aprendiendo a usar crypter

Iniciado por Dr F

11 Respuestas
4807 Vistas
Último mensaje Agosto 02, 2011, 07:42:54 am
por jamp
xx
Aprendiendo a usar bugs y exploits

Iniciado por bcn_marc_18

2 Respuestas
2657 Vistas
Último mensaje Febrero 24, 2011, 03:35:03 pm
por Bl4ck-c00k13
xx
Aprendiendo a usar netcat LA SUPER-WEAPON

Iniciado por Fran_hackez

7 Respuestas
7574 Vistas
Último mensaje ſeptiembre 08, 2008, 08:31:28 am
por Akane28
exclamation
MANUAL: Aprendiendo a usar Nmap... By RaKi0N

Iniciado por RaKi0N

7 Respuestas
17709 Vistas
Último mensaje ſeptiembre 08, 2007, 02:52:08 pm
por sebastianxalchemy
xx
Alguein sabe usar el Turkojan 4.0? Ya lo intente usar de diversas manera

Iniciado por alluwant

9 Respuestas
3276 Vistas
Último mensaje Febrero 05, 2014, 05:47:03 pm
por messerschmitt
xx
(Aprendiendo)

Iniciado por selx

1 Respuestas
1268 Vistas
Último mensaje Marzo 06, 2015, 08:36:13 am
por cibergolen