Autor
|
Tema: [Batch] for /R y for /D (Leído 8,083 veces)
|
‡‡‡ Ðξλ†Ћ Щλ†ζЋ ‡‡‡
Desconectado
Mensajes: 56
|
Hola, que tal: Antes que nada, disculpen la pregunta tan basica, pero no he encontrado la respuesta... Para que sirve for /R y for /D en batch? He buscado en el foro y en google, pero he encontrado ejemplos o ejercicios usando tales metodos, mas no su uso. Si me pudieran ayudar, por favor? De antemano, muchas gracias.. Un saludo
|
|
« Última modificación: 1 Marzo 2009, 22:10 pm por sirdarckcat »
|
En línea
|
|
|
|
0x0309
Desconectado
Mensajes: 215
|
http://www.ss64.com/nt/for_d.html http://www.ss64.com/nt/for_r.html
|
|
|
En línea
|
|
|
|
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
Desconectado
Mensajes: 3.069
/^$/
|
Algunos ejemplos basicos : @echo off set /a contador=0 for /r %homedrive%\ %%. in (*) do ( set /a contador+=1 ) msg * Archivos = %contador% for /r %homedrive%\ %%. in (*.doc) do ( echo.%%. ) for /r %homedrive%\ %%. in (*.vbs *.doc *.txt *.exe) do ( echo.%%. ) @echo off msg * Carpetas for /d /r "%homedrive%\" %%. in (*) do ( echo.%%. ) Saludos.
|
|
|
En línea
|
|
|
|
‡‡‡ Ðξλ†Ћ Щλ†ζЋ ‡‡‡
Desconectado
Mensajes: 56
|
Les agradezco su tiempo y la respuesta tan rapida Necesito leerlos con tiempo y hacer ejercicios. Ya si tengo otra duda, los vuelvo a molestar Gracias. Saludos
|
|
|
En línea
|
|
|
|
‡‡‡ Ðξλ†Ћ Щλ†ζЋ ‡‡‡
Desconectado
Mensajes: 56
|
FOR /F ["options"] %%parameter IN (filenameset) DO command FOR /F ["options"] %%parameter IN ("Text string to process") DO command
Sigo sin entenderlo Como se usa delims, tokens y eol
Perdon pero tampoco entiendo que es %%.
|
|
|
En línea
|
|
|
|
0x0309
Desconectado
Mensajes: 215
|
tengo un artículo exclusivo para una ezine que trata sobre el comando for, si quieres te lo facilito, pero con el compromiso de que no lo publiques en ninguna parte.
|
|
|
En línea
|
|
|
|
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
Desconectado
Mensajes: 3.069
/^$/
|
Te dejaré algunos ejemplos : @echo off :: Mostrar Hola %username% for /f "tokens=1,4" %%a in ("Hola Adios Bye %username%") do ( echo.%%a %%b ) ( El tokens 1 : "Hola" El tokens 4 : %username% Si hubiera querido mostrar "Adios", hubiera usado el tokens 2 @echo off :: Mostrar XP en Pantalla, con el comando Ver y For for /f "tokens=3" %%* in ('ver ^| findstr /r /v "^$"') do ( echo.%%* ) ( Puedes usar cualquier caracter en %% pero teniendo cuidado si es algun caracter especial. Igual dentro de ^(^), debes de anteponer el acento circunflejo "^" si es un caracter especial. Para ilustrar el uso de eol, supongamos que tenemos un archivo de texto (file.txt) con este contenido: Agua Sal Leche Cafe :Soda Cerveza Y queremos mostrar solo las lineas que no contengan ":" al principio de la linea : for /f "tokens=* eol=:" %%x in (file.txt) do ( echo.%%x ) Salida : El eol por defecto omite las lineas que empiecen con ";", para quitar esto debe de especificarse : Tambien se habria mediante esto : type "file.txt" | findstr /r /v "^:" Pero no viene al caso. El %% se usa en el comando For, en modo Script, en modo consola debe ser solo %, el %% puede ser precedido de cualquier caracter, pero teniendo en cuenta que si es un caracter especial, debe usarse ^ antes de dicho caracter. Cualquier duda dices. Saludos.
|
|
|
En línea
|
|
|
|
|
‡‡‡ Ðξλ†Ћ Щλ†ζЋ ‡‡‡
Desconectado
Mensajes: 56
|
Otra vez con unas dudas (yo se que no se van a poner a darme clases, solo necesito que me digan si voy bien, por decir, ejemplo 1 es correcto, ejemplo 2 no es correcto)
Por ejemplo, en un archivo llamado x2.txt que contiene
A1 A2 A3 A4 A5 A6 A7 ;B1 B2 B3 B4 B5 B6 B7 :C1 C2 C3 C4 C5 C6 C7 @D1 D2 D3 D4 D5 D6 D7
Confor /F "tokens=3* eol=" %%b in (x2.txt ) do ( )
Se tendrían que declarar 2 variables (%%b y %%c), por decirlo asi, una para el 3 y otra para *, cierto?
De igual forma, enfor /F "tokens=2,4* eol=" %%b in (x2.txt ) do ( )
Se tendrían que declarar ahora 3 variables (%%b, %%c y %%d), por decirlo asi, una para el 2, otra para el 4, y otra para *, estoy bien?
Enfor /F "tokens=2-5 eol=" %%b in (x2.txt ) do ( )
Para que se mostrarán los elementos del 2 al 5, se tendrían que declarar variables para 2, 3, 4 y 5, es correcto?
Por ultimofor /F "tokens=2-4* eol=" %%b in (x2.txt ) do ( )
La sintaxis mas facil sería 2* en lugar de 2-4*, pero igual con alguna variación pudiera aplicarse, por eso se los pregunto: serían necesarias todas esas variables para mostrar del 2 al 7?
Si escribofor /F "delims=2 eol=" %%b in (x2.txt ) do ( )
Se muestra A1 A ;B1 B :C1 C @D1 D Esto es porque muestra hasta donde encuentra un 2, cierto?
Confor /F "delims=A eol=" %%b in (x2.txt ) do ( )
Se muestra 1 ;B1 B2 B3 B4 B5 B6 B7 :C1 C2 C3 C4 C5 C6 C7 @D1 D2 D3 D4 D5 D6 D7 Y aqui, porque si la primera linea empieza con A, porque mostró 1?
Disculpen tantas preguntas, pero creo que ya voy por menos, por lo menos en lo que es un conocimiento y uso basico de batch
|
|
|
En línea
|
|
|
|
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
Desconectado
Mensajes: 3.069
/^$/
|
Todo lo que planteas es correcto. Se muestra 1 ;B1 B2 B3 B4 B5 B6 B7 :C1 C2 C3 C4 C5 C6 C7 @D1 D2 D3 D4 D5 D6 D7 Y aqui, porque si la primera linea empieza con A, porque mostró 1?
Disculpen tantas preguntas, pero creo que ya voy por menos, por lo menos en lo que es un conocimiento y uso basico de batch El contenido de tu archivo es : A1 A2 A3 A4 A5 A6 A7 ;B1 B2 B3 B4 B5 B6 B7 :C1 C2 C3 C4 C5 C6 C7 @D1 D2 D3 D4 D5 D6 D7
La primea linea : Con tu codigo, lo delimitas, es decir, pones el caracter 'A' como delimitador, por que solo mostró el 1? Por que no especificaste que tokens usar, prueba esto : for /F "delims=A tokens=* eol=" %%b in (x2.txt) do ( echo %%b ) La salida : 1 A2 A3 A4 A5 A6 A7 B1 B2 B3 B4 B5 B6 B7 C1 C2 C3 C4 C5 C6 C7 D1 D2 D3 D4 D5 D6 D7
con el tokens=*, especificas que muestre todo, todo lo que esta despues del delimitador=A. Espero y me haya entendido Saludos.
|
|
« Última modificación: 8 Marzo 2009, 08:49 am por Leo Gutierrez. »
|
En línea
|
|
|
|
|
|