Pues creo que si lees el tutorial de sirdarkcat sabrás como hacer eso y mucho más...
.
FOR es una herramienta muy completa, nos permite analizar segmentos de la salida de comandos, funciones y el contenido de archivos.
Tambien permite hacer bucles de la siguiente manera:
FOR /L
%%var
IN (inicio,incremento,fin
) DO (acciones
)
inicio, es el valor inicial, incremento es la cantidad a sumar, y fin es la cantidad a detenerse, por ejemplo:
imprimira 0 1 2 3 4 5 6 7 8 9 10
sinembargo, la forma mas sencilla de usar FOR, es para numerar archivos, y hacer algo con ellos.. por ejemplo:
mostrará todos los archivos que empiezan con x.
para SOLO mostrar directorios:
FOR /D %%x in (m*) DO echo %%x
el modificador "/D", mostrará solo los directorios, que empiesen con m.
El comando se puede hacer "recursivo", es decir, que se ejecute dentro de cada directorio, con el comando "/R", por ejemplo, en una estructura de directorios como la siguiente:
├───adios
│ └───algo
│ └───xx
└───hola
al ejecutar el comando:
C:\adios
C:\adios\algo
sinembargo, al ejecutar el comando..
C:\ax.txt
C:\adios\sx.txt
C:\adios\wwx.txt
C:\adios\algo\kkx.txt
C:\adios\algo\xx\xx.txt
C:\hola\ax.txt
C:\hola\rx.txt
nos mostrara todos los archivos que coinciden con la sequencia especificada, incluso podriamos hacer un buscador en batch, con el uso de FINDSTR y FOR.
Tenemos otro modificador, /F que nos permite usar ciertas opciones para separar el resulado de las acciones.. comandos, cadenas, o archivos. Su sintaxis es la siguiente:
FOR /F ["opciones"]
%var
IN (conjunto
) DO (acciones
)
conjunto puede ser:
conjunto de archivos -> sin comillas
cadena de caracteres -> con comillas dobles (" ")
comando -> con comilla simple (' ')
las opciones son las siguientes:
eol -> todo lo que este despues de este caracter sera ignorado (para cada linea)
skip -> numero de lineas a saltarse al principio del archivo/comando.
delims -> esto sirve para separar las strings.. si no se coloca esta opcion, se usaran como separadores "espacio" y "tab"
tokens -> esto es para especificar cuales segementos, delimitados por "delims", seran pasados a las variables.. por ejemplo:
1,2,3
solo pasara los primeros 3 segmentos.
1,2*
pasara 2 segmentos, el primero y todo lo que este despues (el * regresa todo el resto de la linea)
1,2-6,8,9*
regresara 4 segmentos, el primero, desde el segundo hasta el sexto, el octavo y el resto de la linea, despues del noveno, el signo de menos (-) genera intervalos.
por ultimo, esta la opcion:
usebackq -> que cambia la forma de interpretar si es string o comando, de la siguiente manera:
'cadena'
`comando`
Nota: [`] es diferente al caracter de acento [´]
por ejemplo, el siguiente comando:
FOR /F "tokens=1,3-5,7-9,10* delims= "
%%i IN ("George no es malvado, es bondadoso, siempre piensa en los demas."
) DO echo %%i %%j %%k %%l tonto,
%%m %%n %%o matar a
%%p %%q
dara de resultado:
George es malvado, es tonto, siempre piensa en matar a los demas.
, y FINDSTR es el otro comando que te ayudará mucho, (recuerda que también puedes emplear FIND como filtro
).
Con ello deberías poder crear un script que almacene en un archivo las fechas de modificación de los archivos, así como su tamaño, si varían ambas variables lo reenvía.
Busca información sobre el comando AT para programar cada cuanto re-analiza los archivos, 24 hs, 72 hs., una semana, cada mes, lo que te sea más conveniente. También puedes gracias a %~z hacer una comparación lógica, si es mayor a X tamaño no actualizar, posponer por X tiempo, o bien dejar un aviso en otro archivo, el cual revises periódicamente.