IT Geek Cómo mantener archivos con el mismo nombre en Sync
Es muy probable que haya 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, mantener los archivos que tienen el mismo nombre de archivo sincronizado en toda la máquina, de modo que cuando uno de los archivos cambia, todos se actualizan.
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 usted es un desarrollador web que, a lo largo del tiempo, ha reunido 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 de errores o una mejora, tendrá que aplicarla manualmente en cada una de las carpetas de código fuente de sus otros sitios también..
Nuestra herramienta intenta resolver el problema de tener que aplicar manualmente el archivo actualizado a cada carpeta de origen. Que hace:
- Busca todos los archivos con un nombre específico (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 anota su valor hash de archivo.
- Todos los demás archivos denominados library.js (que no son la copia actualizada más reciente) tienen su valor hash de archivo comparado con el más reciente (determinado en el paso anterior).
- Si los valores hash del archivo son diferentes, la copia respectiva de library.js se reemplaza con la copia actualizada más reciente.
Debido a que estamos utilizando valores hash para comparar los archivos, estamos seguros de que cualquier archivo reemplazado es realmente diferente a la copia más reciente. Por ejemplo, si tuviera que ejecutar el proceso y se hicieron 5 reemplazos de archivos, ejecutar el proceso nuevamente inmediatamente no haría ningún reemplazo ya que los valores hash del archivo ahora son idénticos.
Actualizar a la herramienta de copia más reciente
La herramienta Update to Newest Copy Tool es una versión modificada de un script por lotes con el mismo nombre (ambos están disponibles para descargar usando los enlaces al final del artículo) que se convirtió a un archivo EXE para incluir el Nirsoft requerido Utilidad HashMyFiles. La herramienta debe ejecutarse desde la línea de comando con ciertos parámetros especificados. Si solo ejecutara el archivo EXE haciendo doble clic, recibirá un mensaje indicando esto.
Para usar Actualizar a la Copia más nueva, puede ver los parámetros ejecutando "UpdateToNewestCopy /?" Que muestra el siguiente cuadro de diálogo:
Los únicos parámetros necesarios son el SourceFolder (por ejemplo,% UserProfile% \ Documents \ Web Sites) y el FileName (library.js). Sin embargo, puede alterar la funcionalidad agregando interruptores adicionales como se describe anteriormente.
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 es la que produjo el 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 la anterior, sin embargo, solo informa sobre los archivos que se reemplazarán y en realidad no realiza ninguna operación de archivo:
UpdateToNewestCopy “C: \ users \ jfaulkner \ documents \ Code Files” Common.vb / V
Supongamos que hay un archivo llamado "C: \ Config \ FilesToSearch.txt" con el siguiente contenido:
library.js
Common.vb
El siguiente comando buscará en la carpeta Mis documentos del usuario actual e informará sobre cualquier actualización de "library.js" y "Common.vb", pero en realidad no realizará ninguna operación de actualización:
UpdateToNewestCopy “% UserProfile% \ Documents” “C: \ Config \ FilesToSearch.txt” / L / V
Automatizando el proceso
Este proceso es un candidato ideal para la automatización. Al crear una tarea programada (no se requiere nada especial) con las configuraciones especificadas y hacer que se ejecute diariamente / por hora / cada 15 minutos (dependiendo de sus requisitos), puede mantener los archivos sincronizados en un verdadero sistema de "confeccionar y olvidar" Moda.
Descargar
Actualizar a la copia más reciente - formato ejecutable modificado
Actualizar a la copia más reciente: archivos por lotes de origen (más orientados a la línea de comandos)