¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Documentación de Update v1.1.16 ________________________________________________________________________ ¿QUÉ HACE UPDATE? ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Update permite sincronizar una copia de una carpeta con la carpeta original. Durante la sincronización, únicamente se copian los archivos que están más actualizados en la carpeta origen que en el destino, lo que permite que la operación de sincronización se realice en menos tiempo que una copia normal. Update ha sido diseñado como una utilidad de copia de seguridad. Gracias a la velocidad a la que opera (en condiciones normales, puede sincronizar carpetas de centenares de megabytes en un minuto), permite la realización de copias de seguridad varias veces al día en un segun- do disco duro, o una vez al día en un dispositivo removible (CD-RW, Zip, Jazz...). También permite mantener actualizada una copia de un directorio a través de la red. ¿CÓMO SE USA? ¯¯¯¯¯¯¯¯¯¯¯¯¯ Update permite dos formas de uso: mediante interfaz gráfica, y median- te línea de comandos. Para abrir la interfaz gráfica, basta con ejecutar Update.exe desde el Explorador de Windows. Se mostrará un diálogo donde podremos especificar las carpetas de origen y destino. También se pueden seleccionar usando los botones "explorar" que están a la derecha de las cajas de texto. A continuación, pulsaremos "Actualizar", y comenzará la sincronización. La sintaxis de Update desde la línea de comandos es la siguiente: update [/u [/logfile:]] donde es la carpeta origen y es la carpeta destino. Cuando se ejecute este comando, la sincronización comenzará directa- mente, sin pasar por el diálogo anteriormente descrito. Tanto el ori- gen como el destino pueden ser nombres largos de archivo, pero en ese caso deberán ir encerrados entre comillas dobles (por ejemplo, "C:\Mis documentos"). La carpeta destino debe existir antes de ejecutar el comando. Si durante la sincronización se encuentra algún error, éste se alma- cenará en una lista y continuará la sincronización. Al terminar, si se han producido errores, se mostrarán, junto con las operaciones que los provocaron. El modificador /u activa el modo desatendido. En este modo los errores no se muestran al terminar la sincronización, sino que son añadidos al archivo de registro. Esto permite ejecutar la sincroniza- ción sin intervención del usuario. Por defecto, el archivo de registro se llama "update.log", y está situado en el directorio de trabajo. Esto puede cambiarse especi- ficando un nombre de archivo (opcionalmente con una ruta) a través del modificador /logfile:. Por seguridad, Update realiza siempre actualizaciones unidirec- cionales. Esto quiere decir que nunca, bajo ninguna circustancia, Update alterará en forma alguna la carpeta de origen. Esto implica que Update no tiene (ni tendrá nunca) funciones de actualización cruzada. MODIFICADORES DE LÍNEA DE COMANDOS ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Por defecto, Update replica los archivos y carpetas del origen en el destino. Esto incluye copiar los archivos nuevos, actualizar los modi- ficados, y borrar los eliminados. A partir de la versión 1.0.14, el modificador /exec: permite efectuar únicamente algunas de las acciones anteriores. /exec: va seguido de una o varias de las letras C, U y D, que activan respectivamente la creación de archivos y carpetas nuevos, la actualización de archivos, y la eliminación de archivos y carpetas. Por ejemplo, si queremos hacer una actualización no destructiva (copiar y actualizar, pero no eliminar), podemos usar la siguiente línea de comandos: update /exec:CU También por defecto, Update registra únicamente los errores sucedidos durante la actualización. En caso de que queramos registrar también las operaciones ejecutadas, /log:, seguido de C, U y/o D, nos permite especificar las operaciones a registrar. C, U y D tienen el mismo significado que en /exec:. La siguiente línea de comandos registraría los errores y las eliminaciones: update /log:D /test nos permite ejecutar Update sin modificar la carpeta de destino. Esto nos permite, en combinación con /log:, determinar el resultado de una operación sin correr el riesgo de perder datos. En el caso de que se especifiquen tanto /exec: como /test, no se realizará acción alguna. Si se especifican /exec:, /log: y /test, se compararán las carpetas y se escribirán en el registro las acciones a realizar, pero no se ejecutarán: update /exec:CU /log:CUD /test /vars permite especificar variables en las rutas de origen y destino. Las variables admitidas son: $d Día del mes (00-31) $w Día de la semana (1-7) $m Mes (01-12) $y Año (1980-2099) $$ Signo de Dólar ($) Esto permite, por ejemplo, rotar las carpetas de destino en función de la fecha. Ésto se haría de esta manera: update /vars C:\Contabilidad\Datos "D:\Backup\Contabilidad\Día $d" Si no se especifica el modificador /vars, las variables no se reemplazan, y el signo de tanto por ciento es tratado como cualquier otro carácter. /createtarget (o su versión abreviada, /ct) hace que la carpeta de destino sea creada automáticamente si no existe. Por defecto, Update registra un error de ruta no encontrada (76) y cancela la operación si el destino no existe, para alertar de rutas de acceso mal escritas. Con este modificador, Update ignorará el error y creará el destino. Esto es útil en combinación con rutas de destino que contienen variables. FUNCIONES ADICIONALES ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Junto con Update se incluyen dos archivos que, si bien no son necesa- rios para su ejecución, la facilitan a usuarios avanzados. Update.reg permite, una vez editado correctamente e introducido en el registro, disponer de un comando "Actualizar en..." en los menús de contexto de carpetas y unidades en el Explorador de Windows. Este comando abre Update y rellena el campo Carpeta origen con la ruta de la carpeta o unidad sobre la que se ejecutó el comando. Al editar este archivo de- be tenerse en cuenta que para separar las diferentes carpetas de una ruta hay que usar dos contrabarras (\\) en lugar de una (\). El segundo archivo, Update.bat, permite sincronizar varias carpetas con un único comando. Este archivo debe ser modificado por el usuario para indicar la lista de carpetas a sincronizar junto con sus corres- pondientes destinos. Nótese que se usa el modificador /U para que, una vez iniciada, la sincronización no se detenga hasta terminar. Este archivo de proceso por lotes pide confirmación antes de comenzar, excepto si se usa el modificador /U al llamarlo, caso en el cual co- mienza inmediatamente. Este archivo permite sincronizar una serie de carpetas al arrancar el equipo, a una hora determinada o cuando el equipo esté inactivo un cierto tiempo. Al modificar Update.bat, téngase en cuenta que los nombres de carpetas deben ser dados en código ASCII en lugar de código ANSI. Esto puede dar problemas si Update.bat es editado usando el Bloc de notas, que usa (como todas las aplicaciones Windows) el código ANSI. Para mayor seguridad, Update.bat debería ser editado con el comando Edit o con otro editor en modo texto: este tipo de programas usan ASCII siempre. Esto sólo es necesario si los nombres de las carpetas contienen voca- les acentuadas, eñes, u otros símbolos regionales. El autor emplea Tareas programadas de Windows NT 4 para ejecutar la sincronización dos veces al día, a las 15 y a las 22 horas. Tareas programadas permite configurar la tarea para que sólo sea ejecutada tras 30 minutos de inactividad, y para que espere ese período de inac- tividad durante tres horas. En cuanto al rendimiento, un ejemplo. En el ordenador del autor, con la siguiente configuración: · Procesador AMD Athlon 500 con placa base AMD 751/756 y 128 Mb de RAM PC100 · Windows NT 4.0 sin drivers bus mastering · Disco duro IDE Western Digital de 30 Gb y 7200 RPM como maestro del bus primario · Disco duro IDE Maxtor de 17 Gb y 7200 RPM como maestro del bus secundario el proceso de actualización de un total de unos 12.000 archivos repartidos en más de 1.200 carpetas (cerca de 1 Gb en total), suele tomar en torno al minuto de tiempo. La actualización se efectúa usando como origen el disco primario y como destino el secundario. ¿DÓNDE OBTENER LA ÚLTIMA VERSIÓN? ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Puedes descargar la última versión de Update de la página de AJF Soft, situada en http://ajfsoft.cjb.net/. También puedes enviar sugerencias, comentarios, ideas, etc. a ajfsoft@ajfsoft.cjb.net. AVISO LEGAL ¯¯¯¯¯¯¯¯¯¯¯ (C) AJF Soft, 2.000-11. Esta utilidad se distribuye "tal cual", sin ninguna garantía. Aunque Update es usado a diario en el laboratorio de desarrollo de AJF Soft y se pone la máxima atención en la calidad de la herramienta, AJF Soft no puede hacerse responsable de ningún daño producido directa o indirectamente por el uso de esta utilidad. Todos los derechos reservados. HISTORIAL DE REVISIONES ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ v1.0.2 (3/Jun/2000). Primera versión pública. v1.0.3 (5/Jun/2000). Añade el modificador /u y el diálogo Acerca de. Primera versión de la documentación. v1.0.4 (7/Jun/2000). Soluciona un error eliminando carpetas recursiva- mente. Añade borrado de archivos de sólo lectura, ocultos o de sistema (la versión anterior los ignoraba y emitía un error). v1.0.5 (22/Jun/2000). Soluciona un error eliminando carpetas con atri- butos de sólo lectura, sistema u ocultas (la versión anterior se bloqueaba). v1.0.6 (23/May/2001). Soluciona problema copiando archivos largos: no se actualizaba el texto de la ventana antes de comenzar la copia, y se mostraba el nombre del archivo anterior. Ligeros cambios de terminología. v1.0.7 (17/Sep/2001). Soluciona un error actualizando archivos ocul- tos, de sistema o de sólo lectura (antes se emitia un error 75 y los ignoraba). Soluciona problema con archivo de destino situado en una carpeta NTFS comprimida. Ahora los cambios de atributos en el origen se actualizan en el destino si el archivo es modificado. v1.0.8 (6/Nov/2001). Soluciona un error eliminando carpetas con archi- vos con atributos de sólo lectura, sistema, u oculto en unidades NTFS (la versión anterior se bloqueaba). Soluciona un error en el cual al añadir una carpeta o archivo cuyo nombre contiene un carácter especial se eliminan y vuelven a copiar algunas car- petas o archivos situados en el mismo nivel. Añadido el Aviso Legal a este archivo. v1.0.9 (16/Dic/2001). Soluciona un error eliminando carpetas con atributos de sólo lectura, sistema, u oculto en unidades NTFS (la versión anterior se bloqueaba). v1.0.10 (9/May/2002). Añade compatibilidad con la nueva apariencia de Windows XP. v1.0.11 (7/Feb/2003). Actualizadas todas las ventanas para emplear el tipo de letra Tahoma (más compatible con la opción ClearType de Windows XP). v1.0.12 (18/Sep/2007). Capturado un error en tiempo de ejecución (No se ha encontrado el archivo, código 53) al comparar carpetas que contienen archivos con nombres Unicode. v1.0.13 (29/Ago/2008). Corregido un error por el cual sólo se copiaban al destino los archivos y carpetas nuevos, mientras que los archivos cambiados no eran actualizados (introducido en la v1.0.12). Incluida la información de versión y de copyright adecuada en el ejecutable y en el díalogo Acerca de. v1.1.14 (10/May/2009). Nuevo analizador de línea de comandos, más robusto y flexible. Modificadores /log:, /exec: y /test para controlar el proceso de actualización y el registro. Modificador /logfile: para especificar el nombre del archivo de registro. Eliminado el límite de un máximo de 1000 errores registrados por ejecución. Solucionado problema con Windows Vista: el sistema operativo identificaba a Update como un instalador y mostraba siempre un diálogo de elevación de privilegios. v1.1.15 (18/Jul/2009). Error: se registra un error "Llamada a procedimiento o argumento no válidos (5)" al actualizar un archivo si el archivo se halla en una partición NTFS y está comprimido; aunque se registra un error, el archivo es copiado correctamente. Ahora la barra de progreso se muestra con el tema visual correspondiente en Windows XP y posteriores, y la ventana se muestra en la barra de tareas. Introducidos los modificadores de línea de comandos /vars y /createtarget (/ct). v1.1.16 (5/Mar/2010). Error: Update se bloquea al eliminar una carpeta cuando no tiene los permisos adecuados. Error: runtime 6 (Desbordamiento) al ejecutar una operación que genera más de 32767 errores o líneas de registro. v1.1.17 (31/Oct/2011). Error: runtime 76 (No se ha encontrado la ruta de acceso) al intentar actualizar una carpeta cuyo nombre contiene un caracter Unicode. Error: no funcionan las variables en las rutas aunque se indique el modificador /vars.