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

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


  Mostrar Mensajes
Páginas: 1 ... 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 [1026] 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 ... 1232
10251  Foros Generales / Dudas Generales / Re: pag para bajar peliculas utorrent en: 5 Noviembre 2012, 10:05 am
Cuanto spam,  ¿no?,  fiesta!  :xD

Menos el comentario del compañero victor1960, en las demás páginas vas a encontrar practicamente casi todo en inglés, así que... añado dos sitios Made In Spain que no te pueden faltar junto a la lista de victor1960:

www.newpct.com
www.mejortorrent.com

saludos
10252  Programación / Scripting / Re: (TEMA BLOQUEADO HASTA FINALIZAR EL TUTO) Tutorial extendido de aprendizaje Batch en: 4 Noviembre 2012, 20:07 pm

AÑADIRÉ MÁS INFORMACIÓN A ESTE APARTADO DE "FOR" DENTRO DE POCO...
ESTE APARTADO Y EL TUTORIAL, NO ESTÁN ACABADOS.






8. Búcles





Hay tres maneras de crear un búcle.

Una manera es usando el comando FOR, el cual ejecuta un comando o una serie de comandos repetidamente sobre varios archivos o datos.

Otra manera es usando el comando FORFILES,

Y la última manera de crear un búcle es usando etiquetas, y el comando GOTO.

Podemos crear un búcle infinito usando una etiqueta, y el comando GOTO, aunque este tipo de búcle es muy distinto y no tiene el mismo fín que un FOR.


Ejemplo de búcle infinito:
Código:
@ECHO OFF

SET VAR1=A
SET VAR2=B

:ETIQUETA
IF NOT "%VAR1%" EQU "%VAR2%" (
     Echo Los valores "%VAR1%" y "%VAR2%" no conciden.
     GOTO :ETIQUETA
) ELSE (
     Echo Los valores "%VAR1%" y "%VAR2%" coinciden.
     Pause&Exit
)




Hay varios tipos de FOR, por lo tanto varios tipos de búcles.





  • FOR


FOR es un tipo de búcle para archivos, o para una serie de expresiones.

Sintaxis:
FOR %%variable IN (archivo o expresión) DO (comandos)


Ejemplos:
Código:
@ECHO OFF
FOR %%A in (*.bat) DO (Echo %%A)
Pause&Exit



Código:
@ECHO OFF
SET "VARIABLE=a b c d e"
FOR %%A in (%VARIABLE%) DO (Echo %%A)
Pause&Exit







  • FOR /R
(FOR-Files-Rooted at Path)


FOR /R es un tipo de búcle recursivo para archivos.

Sintaxis:
FOR /R "RUTA" %%variable IN (archivos) DO (comandos)


Ejemplos:
Código:
@ECHO OFF
FOR /R "C:\" %%A in (*.dll) DO (Echo %%A)
Pause&Exit







  • FOR /D
(FOR-Directories)


FOR /D es un tipo de búcle para carpetas.

Sintaxis:
FOR /D "RUTA" %%variable IN (carpetas) DO (comandos)

NOTA: Se puede usar en combinación del parámetro "/R" para procesar directorios recursivamente.


Ejemplos:
Código:
@Echo OFF
FOR /D /R "C:\" %%A in (*system32) DO (Echo %%A)
Pause >NUL







  • FOR /L
(FOR-List of numbers)


FOR /L es un tipo de búcle para un rango de números.

Sintaxis:
FOR /L %%variable IN (Número inicial,Incremento,Número final) DO (comandos)


Ejemplos:
Código:
@ECHO OFF
FOR /L %%A IN (0,1,10) DO (Echo %%A)
Pause&Exit



Código:
@ECHO OFF
FOR /L %%A IN (5,5,25) DO (Echo Hola!)
Pause&Exit

Aquí vemos como el primer número del rango es "5", se va incrementando el número por "5" hasta llegar al "25", por lo tanto el bucle se efectúa 5 veces.







  • FOR /F
(FOR-File contents) (o FOR-Command Results)


FOR /F es un tipo de búcle para el contenido de un archivo, o para el resultado de un comando.

Sintaxis:
FOR /F "PARÁMETROS" %%variable IN ('Archivo o comando') DO (comandos)

Los comandos deben estar entre comillas ('comando')

Los parámetros de FOR /F son:


eol=X           - Añade un caracter de comentario a cada línea.

skip=X          - Especifica el número de líneas que hay que saltarse al principio del archivo.

delims=XXX      - Especifica un grupo de delimitadores.
                  Esto reemplaza al grupo de delimitadores predeterminados de espacio y tabulación.

usebackq        - Especifica que una cadena entre comillas inversas se ejecuta como un comando y una cadena con comillas simples es un comando de cadena literal,
                  y permite el uso deomillas dobles para entrecomillar los nombres de archivo en un conjunto de archivos.

tokens=x,y,m-n  - Especifica que símbolos de cada línea deben pasarse al cuerpo de la clausula "for" en cada iteración.
                  Esto causará que los nombres de variables adicionales sean asignados.
                  Si el último caracter en la cadena tokens= es un asterisco, se asigna una variable adicional que recibe el resto del texto en la línea posterior al último símbolo analizado.



Ejemplo skip:
Código:
@ECHO OFF
FOR /F "Skip=1" %%A IN ('Echo Linea1 ^& Echo linea2 ^& Echo Linea3') DO (Echo %%A)
Pause&Exit




Ejemplo delims:
Código:
@ECHO OFF
FOR /F "Delims=c" %%A IN ('Echo abcde') DO (Echo %%A)
Pause&Exit


10253  Programación / Scripting / Re: (TEMA BLOQUEADO HASTA FINALIZAR EL TUTO) Tutorial extendido de aprendizaje Batch en: 4 Noviembre 2012, 19:40 pm
7. Comparación condicional





Las comparaciones se efectuan con el comando IF.

El comando IF se puede usar para trés tipos de comparaciones.


1º - Para comparar un elemento:

Código:
IF "Elemento 1" EQU "Elemento 2" (
     REM Código si se cumple la condición
)

2º - Para comprobar si existe un elemento (archivo o carpeta)

Código:
If Exist "Elemento 1" (
     REM Código si se cumple la condición
)

3º - Para comprobar si existe una variable.

Código:
If DEFINED "Elemento 1" (
     REM Código si se cumple la condición
)

También se pueden realizar comparaciones con varias condiciones:

Código:
If "elemento 1" EQU "elemento 2" if "elemento 3" EQU "Elemento 4" (
     REM Código si se cumple la condición
)



El comando IF acepta estos parámetros y condiciones:

/I - No distingue entre mayúsculas y minúsculas

Ejemplo:
Código:
@Echo OFF
IF "A" EQU "a" (Echo correcto)
Pause >NUL
La condición no se cumple porque el primer elemento está en mayusculas, y el segundo en minúsculas.

Código:
@Echo OFF
IF /I "A" EQU "a" (Echo correcto)
Pause >NUL
La condición se cumple.



NOT

Código:
@Echo OFF
IF NOT "A" EQU "a" (Echo "A" no es igual que "a")
Pause >NUL

Código:
@Echo OFF
IF NOT EXIST "C:\fail.txt" (Echo El archivo "C:\Fail.txt" no existe)
Pause >NUL

Código:
@Echo OFF
IF NOT DEFINED VARI (Echo la variable "%%VARI%%" no existe)
Pause >NUL



ELSE

Se utiliza para ejecutar un código si la condición no se cumple.

Ejemplo:
Código:
@Echo OFF
IF EXIST "C:\Archivo.txt" (
     Echo El archivo "C:\Archivo.txt" ya existe.
) ELSE (
     Echo El archivo "C:\Archivo.txt" no existe.
     Echo Test > "C:\Archivo.txt"
     Echo El archivo "C:\Archivo.txt" ha sido creado...
)
Pause >NUL



En las comparaciones podemos usar los operadores condicionales que expliqué en el apartado de operadores... -> 4.5 Operadores de comparación (o Condicionales)

Ejemplo:
Código:
@Echo OFF
IF 1 LSS 2 (Echo 1 es menor que 2)
Pause >NUL

NOTA: Se puede usar el operador EQU o el operador ==

Código:
IF "A"=="A" (Echo A es igual que A)
10254  Programación / Scripting / Re: (TEMA BLOQUEADO HASTA FINALIZAR EL TUTO) Tutorial extendido de aprendizaje Batch en: 4 Noviembre 2012, 19:35 pm
  • 6.5 Variables de FOR

Las variables de FOR son un tipo de variables que solamente se pueden usar con el comando FOR, así que por el momento no digo más, las explicaré en el apartado del comando FOR.

10255  Programación / Scripting / Re: (TEMA BLOQUEADO HASTA FINALIZAR EL TUTO) Tutorial extendido de aprendizaje Batch en: 4 Noviembre 2012, 19:31 pm
  • 6.4 Variables de entorno


Las variables de entorno son variables predefinidas del sistema, y se puede acceder a su contenido desde cualquier lugar.

Las variables de entorno por defecto en Windows 7 son las siguientes:


VARIABLE                   CONTENIDO
________                   _________

%ALLUSERSPROFILE%          C:\ProgramData
%APPDATA%                  C:\Users\(Nombre de usuario)\AppData\Roaming
%COMMONPROGRAMFILES%       C:\Program Files\Common Files
%COMMONPROGRAMFILES(x86)%  C:\Program Files (x86)\Common Files
%COMPUTERNAME%             (NOMBRE DEL PC-PC)
%COMSPEC%                  C:\Windows\System32\cmd.exe
%DIR%                      (Directorio actual)
%HOMEDRIVE%                C:
%HOMEPATH%                 C:\Users\(Nombre de usuario)
%LOCALAPPDATA%             C:\Users\(Nombre de usuario)\AppData\Local
%LOGONSERVER%              \\{domain_logon_server}
%PATH%                     C:\Windows\System32\;C:\Windows\;C:\Windows\System32\Wbem;etc...  
%PATHEXT%                  .COM; .EXE; .BAT; .CMD; .VBS; .VBE; .JS ; .WSF; .WSH; .MSC
%PROCESSOR_ARCHITECTURE%   (AMD64) (x86)
%PROCESSOR_IDENTIFIER%     (Modelo del procesador)
%PROCESSOR_LEVEL%          (Número)
%PROCESSOR_REVISION%       (Número)
%PROGRAMDATA%              C:\ProgramData
%PROGRAMFILES%             C:\Program Files
%PROGRAMFILES(x86)%        C:\Program Files (x86)
%PROMPT%                   $P$G
%PSMODULEPATH%             C:\Windows\system32\WindowsPowerShell\v1.0\Modules\
%PUBLIC%                   C:\Users\Public
%SYSTEMDRIVE%              C:
%SYSTEMROOT%               C:\Windows
%TEMP%                     C:\Users\{Username}\AppData\Local\Temp
%TMP%                      C:\Users\{Username}\AppData\Local\Temp
%USERDOMAIN%               (Nombre de dominio)
%USERNAME%                 (Nombre de usuario)
%USERPROFILE%              C:\Users\(Nombre de usuario)
%WINDIR%                   C:\Windows




  • Variables de entorno dinámicas


VARIABLE          CONTENIDO
________          _________

%CD%              (Directorio actual)
%DATE%            (Fecha actual)
%TIME%            (Hora actual)
%RANDOM%          (Número aleatorio entre 0 y 32767)
%ERRORLEVEL%      (Número de salida)
%CMDEXTVERSION%   (Número)
%CMDCMDLINE%      "cmd.exe"  (Parámetro)




NOTA: Las variables de entorno del usuario se almacenan en la clave de registro:  HKEY_CURRENT_USER\Environment

NOTA: Las variables de entorno del sistema se almacenan en la clave de registro: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
10256  Programación / Scripting / Re: Tutorial extendido de aprendizaje Batch en: 4 Noviembre 2012, 17:52 pm
  • 6.3 Variables expandidas

Las variables expandidas son prácticamente igual que las variables standard, pero para poder usarlas se debe habilitar la expansión de las mismas con el comando SETLOCAL:
Código:
Setlocal enabledelayedexpansion

Ejemplo:
Código:
@Echo OFF
Setlocal enabledelayedexpansion
Set "VARIABLE=VALOR"
Echo !VARIABLE!
Pause >NUL



Esta técnica se usa comúnmente dentro de un FOR donde para poder mostrar variables tienen que estar expandidas.

Pero estas variables tienes sus inconvenientes, ya que al habilitar la expansión, solamente podremos usar el caracter ! como operador de variable, es decir, no podremos mostrar el caracter (Ni siquiera excluyendolo ni usando comillas).

Ejemplo:
Código:
@Echo OFF
Setlocal enabledelayedexpansion
Echo !Hola
Echo ^!Hola
Echo "!Hola"
Pause >NUL



NOTA: Siempre se puede evitar la expansión y su restricción de caracteres, eso lo explicaré cuando lleguemos a la temática FOR.
10257  Programación / Scripting / Re: Tutorial extendido de aprendizaje Batch en: 4 Noviembre 2012, 17:48 pm
  • 6.2 Variable Standard


  • SET

Una variable standard es la más común en Batch, se puede mostrar usando el comando SET o el comando ECHO (Ojo, mostrar es algo muy distinto a USAR)

Código:
@Echo OFF
Set WINDIR
Echo %WINDIR%
Pause >NUL





Para usar una variable es suficiente con escribir su nombre:
(No nos olvidemos de encerrarla con comillas)

Código:
@Echo OFF
DIR "%WINDIR%"
Pause >NUL





Si una variable contiene una orden y usamos la variable, se procesará la orden:

Código:
@Echo OFF
Set "Variable=Dir /B"
%VARIABLE%
Pause >NUL





El nombre de las variables puede contener letras, números, espacios, y operadores, pero el nombre de una variable nunca debe empezar por un número, para que no entre en conflicto con las variables especiales.

Código:
@Echo OFF
Set 0Variable=Valor
Echo %0variable%
Pause >NUL


Para que el nombre de la variable no entre en conflicto, la encerraremos entre comillas (Pero siguiendo la regla de NO empezar el nombre de la variable con un número):
Código:
@Echo OFF
Set "V0a _ri &| #~able=Valor"
Echo "%V0a _ri &| #~able%"
Pause >NUL







  • SET /P

Con el parámetro /P (Prompt) del comando SET podemos crear una variable y esperar la respuesta del usuario, es decir, el valor de la variable será lo que el usuario escriba en la CMD.

Código:
@Echo OFF
SET /P "VARIABLE=Escriba su nombre >> "
Echo Ud. se llama %VARIABLE%
Pause >NUL







  • SET /A

Con el parámetro /A del comando SET podemos realizar operaciones matemáticas, y asignar valores numéricos a una variable.

Sin usar el parámetro /A también podemos asignar números a una variable, pero con el parámetro /A nos aseguramos de que el valor de la variable séa un número, sin excepciones.

Si la operación o asignación falla, Batch automáticamente le asignará el número más bajo a la variable (el 0)

Ejemplo:
Código:
@Echo OFF
SET /A NUMERO=abcde
Echo %NUMERO%
Pause >NUL



NOTA: Aquí tienes la explicación para realizar operaciones con SET /A - > 4.7 Operadores aritmétricos y de asignación
10258  Programación / Scripting / Re: Tutorial extendido de aprendizaje Batch en: 4 Noviembre 2012, 17:17 pm
  • 6.1 Variables especiales (o Variables de parámetro) (o Variables de argumentos)


Las variables especiales son un tipo de variables predefinidas que pueden cambiar su valor constantemente,
Estas son todas las variables especiales:

%0  %1  %2  %3  %4  %5  %6  %7  %8  %9   %*

En ellas se guarda el orden de los argumentos que le pasemos a nuestro script.

Un argumento es una cadena de caracteres delimitados por un espacio o por comillas dobles, esto quiere decir que una cadena encerrada entre comillas cuenta como un argumento
Código:
"Esto es un argumento"    "Y esto otro argumento"

Pero si no usamos comillas, los argumentos se separan por espacios:
Código:
Esto son cuatro argumentos
1       2     3         4

La variable %0 no la consideraremos realmente un argumento, porque en ella se guarda la ruta de nuestro script.
Código:
@Echo OFF
Echo %0
Pause >NUL



Si usamos una subrutina, el argumento %0 pasa a ser el nombre de la etiqueta de la subrutina, y será el siguiente número de variable (%1) el que realmente empezará a guardar el primer argumento que le pasemos:
Código:
@Echo OFF
call :subrutina "argumento 1"
:subrutina
Echo %0
Echo %1
Pause >NUL



Podemos usar la variable especial con comodín %*, esta variable reune todos los argumentos que le pasemos al script:

Código:
@Echo OFF
call :subrutina arg1 arg2 arg3 arg4 arg5
:subrutina
Echo %*
Pause >NUL


(El argumento 0 se omite)



Habeis visto que solo existen 10 variables especiales con números, pero descontando la variable %0, nos quedan 9 variables, ¿que pasa si necesitamos usar más de 9 argumentos... si por ejemplo necesitamos usar el arhumento 10?

Bien, pues el valor de las variables especiales se puede desplazar hacia la izquierda son el comando SHIFT, consiguiendo que el valor que había por ejemplo en la variable %3 pase a la variable %2, y el valor de la imaginaria variable %10 pase a la variable %9, entonces ya podremos usar nuestro 10º argumento en la variable %9

Cita de: CMD
Código:
SHIFT /?

Cambia la posición de parámetros reemplazables

SHIFT [/n]

Si las extensiones de comando están habilitadas,
el comando SHIFT admitirá el modificador /n,
el cual informa al comando que empiece a cambiar en el argumento n, en donde n puede estar comprendido entre 0 y 8.

Por ejemplo:
    SHIFT /2

cambiará %3 a %2, %4 a %3, etc. y deja %0 y %1 sin modificar.

Ejemplo:
Código:
@Echo OFF
call :subrutina a b c d e

:subrutina
Echo Antes del "Left Shift":
Echo arg1 = %1
Echo arg2 = %2
Echo arg3 = %3
Echo arg4 = %4
Echo arg5 = %5

Echo+
SHIFT /1

Echo Despues del "Left Shift":
Echo arg1 = %1
Echo arg2 = %2
Echo arg3 = %3
Echo arg4 = %4
Echo arg5 = %5

Pause >NUL




NOTA: El comando SHIFT no afecta a la variable especial %*, esta variable no se puede desplazar.





  • Expansión de variables especiales (o Argumentos) y de variables de FOR

La gran ventaja de las variables especiales y variables de FOR es que pueden ser expandidas para mostrar únicamente los datos que nos interesen, como por ejemplo, el tamaño del argumento, la extensión del archivo, la fecha de modificación, etc.

Esto se realiza usando el operador ~ seguido de uno de los siguientes caracteres (los caracteres se pueden combinar).


 %~0         - expande %0 quitando las comillas (") que pudiera haber
 %~f0        - expande %0 a un nombre de ruta completo
 %~d0        - expande %0 solo a una letra de unidad
 %~p0        - expande %0 solo a una ruta
 %~n0        - expande %0 solo a un nombre de archivo
 %~x0        - expande %0 solo a una extension de archivo
 %~s0        - ruta expandida contiene solo nombres cortos
 %~a0        - expande %0 a atributos de archivos
 %~t0        - expande %0 a fecha/hora del archivo
 %~z0        - expande %0 a tamaño del archivo
 %~$PATH:0   - busca los directorios de la lista de la variable de entorno de PATH y expande %0 al nombre del primero que se encuentre.


Ejemplo:
Código:
@Echo OFF

Echo Argumento con comillas:
Echo %0
Echo.
Echo Argumento sin comillas:
Echo %~0
Echo.
Echo Ruta completa del argumento:
Echo %~f0
Echo.
Echo Letra de unidad del argumento:
Echo %~d0
Echo.
Echo Ruta del argumento:
Echo %~p0
Echo.
Echo nombre del argumento:
Echo %~n0
Echo.
Echo Extension del argumento:
Echo %~x0
Echo.
Echo Ruta de nombre corto del argumento:
Echo %~s0
Echo.
Echo Atributos del argumento:
Echo %~a0
Echo.
Echo Fecha/Hora dle argumento:
Echo %~t0
Echo.
Echo Tamanyo del argumento:
Echo %~z0

Pause >NUL




Código:
@Echo OFF

FOR %%a in (*) DO (

     Echo Ruta:      %%~fa
     Echo Letra:     %%~da
     Echo Carpeta:   %%~pa
     Echo Nombre:    %%~na
     Echo Extension: %%~xa
     Echo Atributos: %%~aa
     Echo Fecha/H.:  %%~ta
     Echo Tamanyo:   %%~za
     Echo+

)

Pause >NUL


10259  Programación / Scripting / Re: Tutorial extendido de aprendizaje Batch en: 4 Noviembre 2012, 17:17 pm
6. VARIABLES



Existen 4 tipos de variables en Batch,

Las variables especiales: %0
Lass variables standard: %VARIABLE%
Las variables expandidas: !VARIABLE!
Las variables de FOR: %%a

Las 4 tipos de variables solamente pueden almacenar datos alfabéticos, numéricos o alfanuméricos.
10260  Programación / Scripting / Re: Tutorial extendido de aprendizaje Batch en: 4 Noviembre 2012, 17:13 pm
5. SINTAXIS





Si has conseguido leer todas las explicaciones de los operadores te doy la enhorabuena porque a pesar de ser el primer tema práctico de este tutorial, en realidad es uno de los más dificiles, todo lo demás te va a parecer fácil ya que una vez domines los operadores solo será cuestión de ponerlos en práctica en los distintos comandos que veámos y con las distintas técnicas que se nos ocurran.

El conocimiento de los operadores es lo que puede diferenciar a un buen programador Batchero de uno de nivel inferior, sobre todo por que con los operadores podremos salir de la mayoría de las situaciones donde sin ellos nos encontrariamos bloqueados, y además los operadores nos aportarán una simplicidad increible a nuestros scripts.

El orden y la forma en la que se escriben y combinan los operadores, los caracteres, las cadenas, y los comandos, es muy importante a la hora de escribir un script,
Un pequeño fallo tipográfico al escribir un caracter o un operador puede darnos muchos quebraderos e cabeza, en esto consiste el concepto de la sintaxis, en el orden de las cosas.



Es hora de descansar un poco, en este tema simplemente haré un pequeño recordatorio de cúal es la manera correcta de escribir los distintos elementos de un Script Batch.





  • " "

Las comillas dobles... al principio pueden ser frustrantes, pero hay que extremar su uso PARA CASI TODO, siempre que puedas úsalas, con el tiempo te acostumbras a encerrar cada cadena, argumento, o variable importante entre comillas.


Código:
@Echo off
Dir C:\Program Files\Windows Sidebar
Pause >NUL

Ese script nos marca el siguiente error: El sistema no puede encontrar el archivo especificado.

Como el nombre de la ruta contiene espacios, tenemos que encerrar el argumento con comillas dobles:

Código:
@Echo off
Dir "C:\Program Files\Windows Sidebar"
Pause >NUL





  • ^

La exclusión de caracteres, una de las cosas que más errores puede ocasionarte...

Hay que tener en mente cuales son todos los operadores conflictivos de Batch, por conflictivos me refiero a los operadores que no se pueden usar en cadenas sin excluir dicho operador.

Un ejemplo:
Código:
@Echo off
Echo Me & You
Pause >NUL



En el ejemplo hago uso del operador & pero no lo estoy haciendo correctamente, debido a las circunstancias tenemos que excluirlo (escaparlo).

Esta es la manera correcta:

Código:
@Echo off
Echo Me ^& You
Pause >NUL







  • ( )

La agrupación... cuando veo códigos que no usan agrupación me sangran los ojos, por desgracia mucha gente aprende a programar Batch de esta manera, pero hay que corregirlo cuanto antes.

Aquí vemos algo muy típico, un claro ejemplo de una comparación sin agrupación:

Código:
@Echo off
If 2 equ 2 Echo Es igual & echo ok else echo NO
Pause >NUL



¿Ves lo que pasa? Al no agrupar ningún bloque, todo lo que hay a la derecha del comando echo se toma como una cadena.

Hay que agrupar las cosas y ordenarlas correctamente:

Código:
@Echo off
If 2 equ 2 (Echo Es igual & echo ok) else (echo NO)
Pause >NUL


Páginas: 1 ... 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 [1026] 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 ... 1232
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines