Título: batch FTP para subir archivos mas nuevos Publicado por: sombrass en 7 Marzo 2012, 01:13 am Saludos estimados, a ver si me pueden apoyar el tema es que hice un batch para subir archivos a un servidor remoto y todo trabaja muy bien, sin problemas, mi pregunta es, como le hago para que suba el archivo solo y si solo ha sido modificado.
<<ftp -i -s:ftpstart.txt 10.55.79.132>> archivo ejecutar.bat <<archivo ftpstart.txt>> user pass binary put basededatos.dbf quit los archivos suben pero siempre sobrescribe, y si pesa 100 megas, pues a enviarlo de nuevo :(, si es un archivo que incremento entonces si lo envío pero si no, como le hago para que solo lo envíe cuando el archivo es mas nuevo. Saludos espero me puedan ayudar Título: Re: batch FTP para subir archivos mas nuevos Publicado por: DA KILLER en 10 Marzo 2012, 04:01 am 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 (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: Citar Código
FOR: Citar 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: Código inicio, es el valor inicial, incremento es la cantidad a sumar, y fin es la cantidad a detenerse, por ejemplo: Código 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 mostrará todos los archivos que empiezan con x. para SOLO mostrar directorios: Código: FOR /D %%x in (m*) DO echo %%x 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: ├───adios al ejecutar el comando: Código
sinembargo, al ejecutar el comando.. Código
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 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 dara de resultado: Código
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: Citar
Código: Busca cadenas en los archivos. 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 ;) |