11Aug
Es muy probable que hayas oído hablar de servicios, como Dropbox, que se utilizan para mantener los archivos sincronizados en varias máquinas. Sin embargo, ¿qué sucede si desea realizar esta operación en una sola máquina? Es decir, mantenga sincronizados los archivos que tienen el mismo nombre de archivo en la máquina, de modo que cuando uno de los archivos cambie, se actualicen.
Esta funcionalidad puede ser bastante útil, especialmente para desarrolladores o administradores de sistemas donde a veces se requiere la duplicación de archivos.
Cómo funciona
Supongamos que es un desarrollador web que, en el transcurso del tiempo, ha creado una buena colección de funciones de Javascript que utiliza en todos los sitios que mantiene. A medida que agrega o mejora este archivo Javascript( llamémoslo "library.js"), solo se actualiza la copia actual que está editando. Esto significaría, por ejemplo, que si realiza una corrección o mejora de un error, deberá aplicarla manualmente a cada una de las carpetas de código fuente de los otros sitios.
Nuestra herramienta intenta resolver el problema de tener que aplicar manualmente el archivo actualizado a cada carpeta de origen. Qué hace:
- Busca todos los archivos con un nombre especificado( library.js) dentro de una carpeta raíz especificada( % UserProfile% \ Documents \ Web Sites).
- Para todos los archivos denominados library.js, localiza el que se modificó más recientemente y toma nota de su valor de hash de archivo.
- Todos los demás archivos llamados library.js( que no son la copia actualizada más reciente) tienen su valor de hash de archivo comparado con el más reciente( determinado en el paso anterior).
- Si los valores hash de archivo son diferentes, la copia respectiva de library.js se reemplaza con la copia actualizada más recientemente.
Debido a que estamos usando valores hash para comparar los archivos, tenemos la seguridad de que los archivos reemplazados son de hecho diferentes a la copia más reciente. Por ejemplo, si ejecutara el proceso y se realizaran 5 reemplazos de archivos, ejecutar el proceso inmediatamente después no haría ningún reemplazo ya que los valores de hash del archivo ahora son idénticos.
Actualizar a la herramienta de copia más reciente
La herramienta Actualizar herramienta de copia más reciente es una versión modificada de un script por lotes con el mismo nombre( ambos están disponibles para descargar utilizando los enlaces al final del artículo) que se ha convertido en un archivo EXEpara incluir la utilidad Nirsoft HashMyFiles requerida. La herramienta debe ejecutarse desde la línea de comando con ciertos parámetros especificados. Si tuviera que ejecutar el archivo EXE haciendo doble clic, recibirá un mensaje que lo indicará.
Para usar Actualizar a la Copia más nueva, puede ver los parámetros ejecutando "UpdateToNewestCopy /?" Que muestra el siguiente diálogo:
Los únicos parámetros necesarios son SourceFolder( por ej.% UserProfile% \ Documents \ Web Sites) y FileName( library.js).Sin embargo, puede modificar la funcionalidad agregando conmutadores adicionales como se describe arriba.
Ejemplos
El siguiente comando encontraría todos los archivos llamados "Common.vb" dentro de la carpeta "C: \ users \ jfaulkner \ documents \ Code Files", realizando el reemplazo pero haciendo una copia de seguridad de la copia actual antes de sobrescribir( esta salida esqué produjo la imagen superior para este artículo):
UpdateToNewestCopy "C: \ users \ jfaulkner \ documents \ Code Files" Common.vb / B
El siguiente comando realiza la misma acción de búsqueda que arriba, sin embargo, solo informa sobre archivos queser reemplazado y no realiza ninguna operación de archivo:
UpdateToNewestCopy "C: \ users \ jfaulkner \ documents \ Archivos de código" Common.vb / V
Suponga que hay un archivo llamado "C: \ Config \ FilesToSearch.txt" con elsiguientes contenidos:
library.js
Common.vb
El siguiente comando buscaría en la carpeta my documents del usuario actual e informaría sobre las actualizaciones de "library.js" y "Common.vb", pero no perform any update operations:
UpdateToNewestCopy "% UserProfile% \ Documents" "C: \ Config \ FilesToSearch.txt" / L / V
Automatización del proceso
Este proceso es un candidato ideal para la automatización. Al crear una tarea programada( no se requiere nada especial) con la configuración especificada y hacer que ejecute diariamente /hourly/ cada 15 minutos( dependiendo de sus requisitos), puede mantener los archivos sincronizados con la verdadera moda de "configúrelo y olvídese".
Descargar la actualización de
a la copia más reciente: formato ejecutable modificado
Actualización dea la copia más reciente: archivos por lotes de origen( más orientados por línea de comandos)