Robocopy
tiene la opción de monitorear el directorio fuente y copiar cualquier archivo que tenga cambios. Puede especificar cuántos cambios en el directorio deben ocurrir antes de copiar ( /mon n
dónde n
es el número de cambios) y cuánto tiempo esperar antes de volver a escanear ( /mot t
dónde t
es el tiempo de espera en minutos).
Me gustaría monitorear una carpeta casi continuamente, ya que solo estoy buscando un archivo, y quiero que los cambios sean básicamente instantáneos. Sin embargo, parece que no puedo hacer un monitor robocopy por un intervalo de tiempo de menos de un minuto. Lo he intentado /mot 0.5
y falla. También probé /mot 0
y robocopy acaba de salir después de escanear una vez, sin monitoreo continuo.
¿Cómo puedo hacer que robocopy escanee una carpeta casi continuamente, con incrementos de tiempo de menos de 1 minuto? Alternativamente, ¿hay alguna otra herramienta de línea de comando que pueda monitorear constantemente el origen de un archivo y copiar los cambios en tiempo real?
fuente
Respuestas:
Robocopy
Como solo acepta minutos como argumento, supongo que no puede forzarlo a ejecutarse con más frecuencia. Sin embargo, puede ejecutarlo utilizando un archivo por lotes y dejar que la sincronización y el bucle se produzcan en el archivo por lotes o en tareas programadas en lugar de dentro de la robocopia.
fuente
Sus etiquetas indican que está utilizando Windows 8. Esto es bueno, ya que tiene la gran herramienta que es PowerShell y un pequeño cmdlet útil llamado
Register-ObjectEvent
.Cree un archivo de texto, cambie la extensión a
.ps1
, pegue el siguiente script en el archivo. Cambie la$watchedFolder
variable a la carpeta que desea ver. Cambie la función Do-Something para incluir su comando robocopy o lo que sea. Ejecute el script, mientras el script se esté ejecutando, esa función se ejecutará (¡casi instantáneamente!) Cada vez que se cambie un archivo o carpeta en la carpeta observada.Podría ejecutar este script al inicio de Windows y se estaría ejecutando en segundo plano en todo momento sin usar un temporizador.
Véalo en acción
Ejecute el script guardado.
Verá parpadear una ventana de la consola, después de que se cierren, la única indicación de que se está ejecutando será un par de procesos nuevos.
Haga algunas cosas en su escritorio para probar.
Información de antecedentes : en caso de que no esté familiarizado con las herramientas utilizadas en esta respuesta.
System.IO.FileSystemWatcher
, visite su página de MSDN .fuente
DSynchronize es una utilidad independiente que le permite sincronizar periódicamente dos o más carpetas en disco duro, disquete, LAN, llave USB, CD-DVD (con software de escritura de paquetes) y servidor FTP. No es exactamente de qué se trata la pregunta, sino lo más cercano que pude encontrar.
Yo también estaba buscando una solución al tiempo mínimo de 1 minuto en Robocopy y encontré esta pregunta de dos años. Terminé teniendo este software sugerido, y eso es lo que estoy usando. Para el registro, no tengo afiliación con el software.
Pros:
Contras:
La opción de sincronización en tiempo real está marcada en la captura de pantalla en la sección 'Opciones especiales'. Esto sería lo que la pregunta parece describir como el objetivo. Si no está marcada y no tiene un temporizador configurado, puede hacer clic en el botón 'Sincronizar' para iniciar una sincronización única.
Cómo sincronizar dos carpetas:
También encontré este video de YouTube , que muestra el software en acción. Muestra una versión anterior y las opciones no están en el mismo lugar, pero proporciona una idea de cómo funciona el software.
fuente