send
Grupo de Telegram
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

「Aprendiendo a usar FOR」~ Principiantes ~ By JaAViEr!★

  • 5 Respuestas
  • 2884 Vistas

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

Desconectado JaAViEr

  • *
  • Underc0der
  • Mensajes: 163
  • Actividad:
    0%
  • Reputación 0
  • http://codigo.ga
    • Ver Perfil
    • Blog de Programación :: Python
« en: Julio 17, 2011, 05:17:07 am »
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
  1. @You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login off
  2. You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login %%A You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login (ELEMENTO1 ELEMENTO2) You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login (
  3. ACCIONES
  4. )
  5.  
%%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
  1. @You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login off
  2. You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login %%A You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login (Javier FROM CPH) You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login (
  3. You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.%%A
  4. )
  5.  

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
  1. @You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login off
  2. You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login %%A You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login (archivo1.txt archivo2.txt) You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login (
  3. You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login /F /Q /S %%A
  4. )
  5.  
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
  1. @You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login off
  2. You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.Hola
  3. You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.Hola
  4. You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.Hola
  5. You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.Hola
  6. You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.Hola
  7.  
Y con FOR /L :
Código: DOS
  1. @You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login off
  2. You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login /L %%A You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login (1,1,5) You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login (
  3. You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.Hola
  4. )
  5.  

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
  1. @You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login off
  2. You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login/a"count=0"
  3. :count
  4. You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login/a"count+=1"
  5. You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.Hola
  6. You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login %count% You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login 5 (You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login/b)
  7. You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login:count
  8.  
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
  1. @You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login off
  2. You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.Hola 10 veces You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login /L:
  3. You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login /L %%A You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login (1,1,10) You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login (
  4. You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.Hola %%A
  5. )
  6.  
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
  1. @You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login off
  2. You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login /F "tokens=1" %%A You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login ('You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.Hola soy Javier') You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login (You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.%%A)
  3.  
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
  1. @You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login off
  2. You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login /F "tokens=2,3" %%A You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login ('You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.Hola soy Javier') You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login (You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.%%A %%B)
  3.  

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
  1. @You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login off
  2. You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login /F "tokens=*" %%A You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login (archivo.txt) You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login (You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.%%A)
  3.  
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. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Tutorial FOR By JaAViEr
Y en el FOR:
Código: DOS
  1. @You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login off
  2. You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login /F "tokens=1" %%A You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login (archivo.txt) You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login (You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.%%A)
  3.  

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
  1. @You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login off
  2. @You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login off
  3. You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login /F "tokens=1 skip=4" %%A You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login ('You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login') You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login (You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.%%A)
  4.  

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. You are not allowed to view links. Register or Login or 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
  1. @You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login off
  2. You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login /F "tokens=* skip=1" %%A You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login (archivo.txt) You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login (You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.%%A)
  3.  
La salida:
Código: You are not allowed to view links. You are not allowed to view links. Register or Login or 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
  1. @You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login off
  2. You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login /F "tokens=2 skip=2" %%A You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login (archivo.txt) You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login (You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.%%A)
  3.  
Salida:

Código: You are not allowed to view links. You are not allowed to view links. Register or Login or 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. You are not allowed to view links. Register or Login or 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. You are not allowed to view links. Register or Login or 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. You are not allowed to view links. Register or Login or 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
  1. @You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login off
  2. You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login /F "tokens=* eol=H" %%A You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login (archivo.txt) You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login (
  3. You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.%%A
  4. )
  5.  
La salida será:
Código: You are not allowed to view links. You are not allowed to view links. Register or Login or 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
  1. @You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login off
  2. You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login /F "tokens=14" %%A You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login ('ipconfig ^| find /i "n IP."') You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login (
  3. You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.%%A
  4. )
  5.  
Obtener solo nombre de archivos y directorios de la carpeta actual:
Código: DOS
  1. @You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login off
  2. You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login /F "tokens=4 skip=7 eol=E" %%A You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login ('You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login') You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login (You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.%%A)
  3.  

Saludos.
« Última modificación: Octubre 26, 2013, 11:49:39 am por Expermicid »
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Conectado LucaSthefano

  • *
  • Underc0der
  • Mensajes: 398
  • Actividad:
    5%
  • Reputación 0
    • Ver Perfil
« Respuesta #1 en: Julio 17, 2011, 11:38:04 pm »
Excelente aporte compañero, 100% entendible.

Fijado!

Desconectado JaAViEr

  • *
  • Underc0der
  • Mensajes: 163
  • Actividad:
    0%
  • Reputación 0
  • http://codigo.ga
    • Ver Perfil
    • Blog de Programación :: Python
« Respuesta #2 en: Julio 17, 2011, 11:57:15 pm »
Gracias colega fhano , como no tengo Windows no puedo seguir con el :-\
Pero con lo que recuerdo, sólo pregunten e intentaré guiarlos :D
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Desconectado arthusu

  • *
  • Underc0der
  • Mensajes: 525
  • Actividad:
    0%
  • Reputación 2
  • Yo solo se que no se nada - Socrátes
    • Ver Perfil
    • Arthusu BLOG
  • Skype: arthusuxD
« Respuesta #3 en: Agosto 28, 2011, 05:21:33 pm »
me quede con una duda en la parte de este codigo:
Obteniendo IP :
Código: DOS
@echo off
FOR /F "tokens=14" %%A IN ('ipconfig ^| find /i "n IP."') DO (
echo.%%A
)

que significa ^| ?
saludos y gracias de antemano :D

Desconectado arthusu

  • *
  • Underc0der
  • Mensajes: 525
  • Actividad:
    0%
  • Reputación 2
  • Yo solo se que no se nada - Socrátes
    • Ver Perfil
    • Arthusu BLOG
  • Skype: arthusuxD
« Respuesta #4 en: Agosto 28, 2011, 05:40:39 pm »
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
me quede con una duda en la parte de este codigo:
Obteniendo IP :
Código: DOS
@echo off
FOR /F "tokens=14" %%A IN ('ipconfig ^| find /i "n IP."') DO (
echo.%%A
)

que significa ^| ?
saludos y gracias de antemano :D
ya! estuve buscando y  | es un or pero para volcar se escribe ^| saludos buen post ;D

Desconectado JaAViEr

  • *
  • Underc0der
  • Mensajes: 163
  • Actividad:
    0%
  • Reputación 0
  • http://codigo.ga
    • Ver Perfil
    • Blog de Programación :: Python
« Respuesta #5 en: Septiembre 05, 2011, 04:04:46 pm »
el ^ antes del | es para que sea tomado como realmente un | y no
un simple texto, ya que al tener solo el | dentro del FOR , lo toma como
texto y no para la función del ^|


Saludos.
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

 

¿Te gustó el post? COMPARTILO!



Detecta Autorun.Inf + Eliminación de Archivo Infectado - JaAViEr - Batch

Iniciado por JaAViEr

Respuestas: 4
Vistas: 1902
Último mensaje Julio 18, 2011, 06:36:47 pm
por LucaSthefano
[Código-Batch] Consola de Comandos Versión Arcoiris - JaAViEr

Iniciado por JaAViEr

Respuestas: 0
Vistas: 1303
Último mensaje Julio 17, 2011, 05:29:39 am
por JaAViEr
[Código-Batch] Usuarios del PC & Procesos Ejecución - WMIC - JaAViEr

Iniciado por JaAViEr

Respuestas: 0
Vistas: 1058
Último mensaje Julio 17, 2011, 05:21:18 am
por JaAViEr
[Código-Batch] Saber si un número es entero - JaAViEr

Iniciado por JaAViEr

Respuestas: 0
Vistas: 1075
Último mensaje Julio 17, 2011, 05:19:17 am
por JaAViEr
[Código-Batch] Sumando con DEBUG - JaAViEr

Iniciado por JaAViEr

Respuestas: 0
Vistas: 1036
Último mensaje Julio 17, 2011, 05:24:26 am
por JaAViEr