Tengo una máquina virtual que ejecuta XP en la que los archivos se cargan en momentos aleatorios. Necesito un script o utilidad adecuado para la línea de comando, que se ejecute cada X minutos (por ejemplo) yMOVERtodos los archivos cargados en un directorio compartido en una caja Win7.
Ahora, el move
comando de línea de comandos no se ejecuta en unidades, y menos aún en recursos compartidos. (Y da un mensaje súper útil Access denied.
)
podría hacer un
copy src desr_share
rm src
...pero aquí está la parte complicada:
Cuando se ejecuta el comando de copia, puede suceder que se cargue un archivo al mismo tiempo. Es copy
posible que carguen solo una parte del archivo o que lo omitan por completo y continúen, pero luego, cuando se rm
inicie, es posible que el archivo se cargue por completo y rm
lo borrarán sin que se haya copiado correctamente en el destino.
Entonces necesito algo que tenga la move
semántica (copiar un archivo y eliminarlo solo si tiene éxito), pero que funcione en todas las máquinas.
¿Alguna sugerencia?
PD. No me importa si un archivo se mueve solo parcialmente, siempre y cuando no se elimine. Forzaré la sobrescritura de cualquier archivo de destino y, en la siguiente ejecución, el archivo se cargará nuevamente por completo.
Respuesta1
Mire Robocopy, que es estándar en Win7 y está disponible en un kit de desarrollo de Microsoft para XP.
use robocopy /?
(o robocopy /? > drive:\path\robocopy_options.txt
) para opciones.
Ventanas 7:
http://technet.microsoft.com/en-us/library/cc733145%28v=ws.10%29.aspx
Windows XP:
http://www.microsoft.com/en-us/download/details.aspx?id=17657#Requirements