Pues creo que si lees el tutorial de sirdarkcat sabrás como hacer eso y mucho más...
http://foro.elhacker.net/scripting/programacion_batch_avanzada_nuevo-t132924.0.html
Fíjate sobre todo en los puntos primero, quinto y octavo.
CITO:
Variables y Argumentos:
FOR:
FOR es un comando INCREÍBLEMENTE COMPLETO, y FINDSTR es el otro comando que te ayudará mucho, (recuerda que también puedes emplear FIND como filtro ).
Finalmente FINDSTR está en el punto 8:
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.
En fin espero te sirva, saludos y suerte
http://foro.elhacker.net/scripting/programacion_batch_avanzada_nuevo-t132924.0.html
Fíjate sobre todo en los puntos primero, quinto y octavo.
CITO:
Variables y Argumentos:
CitarCódigo (dos) [Seleccionar]
%~f1 - regresa la ruta y el archivo de %1.
%~d1 - regresa la letra de la unidad de %1.
%~p1 - regresa solo la ruta del archivo %1.
%~n1 - regresa solo el nombre de archivo %1.
%~x1 - regresa solo la extension del archivo %1.
%~s1 - regresa solo la ruta, con directorios, con nombres cortos del archivo %1.
%~a1 - regresa los atributos del archivo.
%~t1 - regresa la hora/fecha del archivo %1
%~z1 - regresa el tamaño del archivo %1.
FOR:
CitarFOR 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:Código (dos) [Seleccionar]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:Código (dos) [Seleccionar]FOR /L %%i IN (0,1,10) DO (echo %%i)
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:Código (dos) [Seleccionar]FOR %%x in (x*) DO echo %%x
mostrará todos los archivos que empiezan con x.
para SOLO mostrar directorios:Código [Seleccionar]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:Código [Seleccionar]
├───adios
│ └───algo
│ └───xx
└───hola
al ejecutar el comando:Código (dos) [Seleccionar]FOR /R /D %%x in (a*) DO echo %%x
C:\adios
C:\adios\algo
sinembargo, al ejecutar el comando..Código (dos) [Seleccionar]FOR /R %%x in (*x*) DO echo %%x
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:Código (dos) [Seleccionar]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:Código (dos) [Seleccionar]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:Código (dos) [Seleccionar]George es malvado, es tonto, siempre piensa en matar a los demas.
FOR es un comando INCREÍBLEMENTE COMPLETO, y FINDSTR es el otro comando que te ayudará mucho, (recuerda que también puedes emplear FIND como filtro ).
Finalmente FINDSTR está en el punto 8:
Citarextension de FIND, acepta expresiones regulares, y busqueda general (lo mas parecido que DOS tiene a grep), descripción detallada:
- FINDSTR
Código [Seleccionar]
Busca cadenas en los archivos.
FINDSTR [/B] [/E] [/L] [/R] [/S] [/I] [/X] [/V] [/N] [/M] [/O] [/P]
[/F:archivo]
[/C:cadena] [/G:archivo] [/D:lista de directorios] [/A:atributos de color]
[cadenas] [[unidad:][ruta]nombredearchivo[ ...]]
/B Hace coincidir los modelos si están al principio de la línea.
/E Hace coincidir los modelos si están al final de la línea.
/L Literalmente utiliza cadenas de búsqueda.
/R Utiliza cadenas sde búsqueda como expresiones regulares.
/S Busca archivos que coinciden en el directorio actual y en todos
los subdirectorios.
/I Especifica que la búsqueda no distingue mayúsculas de minúsculas.
/X Imprime líneas que coinciden con exactitud.
/V Sólo imprime líneas que no contienen una correspondencia.
/N Imprime el número de la línea antes de la línea que coincide.
/M Sólo imprime el nombre de archivo si el archivo contiene una
correspondencia.
/O Imprime un carácter de desplazamiento antes de las líneas que
coinciden.
/P Omite archivos con caracteres que no son imprimibles
/A:attr Especifica atributos de color con dos dígitos hexadecimales. Ver
"color /?"
/F:archivo Lee la lista de archivos desde el archivo especificado
(/ significa consola).
/C:cadena Utiliza una cadena especificada como una búsqueda de cadena
literal.
/G:archivo Coje la búsqueda de archivos desde el archivo especificado
(/ significa consola).
/D:dir Busca un signo de punto y coma de la lista delimitada de
directorios
cadenas Texto que se debe buscar.
[unidad:][ruta]nombredearchivo
Especifica un archivo o archivos que buscar.
Utiliza espacios para separar múltiples cadenas de búsqueda a no ser que
el argumento lleve un prefijo con /C. Por ejemplo, 'FINDSTR "qué tal" x.y'
busca "qué" o "tal" en el archivo x.y. 'FINDSTR /C:"qué tal" x.y' busca
"qué tal" en el archivo x.y.
Expresión regular de referencia rápida:
. Comodín: cualquier carácter
* Repetir: cero o más ocurrencias de un carácter previo o de clase
^ Posición de línea: comienzo de la línea
$ Posición de línea: fin de línea
[clase] Clase de carácter: cualquier carácter en la serie
[^class] Clase inversa: cualquier carácter que no esté en la serie
[x-y] Intervalo: cualquier carácter que esté dentro del intervalo
especificado
\x Escape: uso literal de un metacarácter x
\<xyz Posición de palabra: principio de palabra
xyz\> Posición de palabra: fin de palabra
Para obtener una información más completa sobre expresiones regulares de
FINDSTR referirse al Comando de referencia Command en línea.
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.
En fin espero te sirva, saludos y suerte