Robocopy reemplaza el mismo movimiento de archivo de fecha

1

Estoy usando robocopy para mover datos. Quiero lograr esto

Datos de archivo de origen IF (más nuevos o iguales) mover / sobrescribir datos Otro archivo de omisión

Necesito un cambio o una forma de excluir datos más nuevos, no más nuevos o mismos . Estoy usando Robocopy para limpiar y mover muchos datos a un gran dispositivo de almacenamiento.

También sería útil una línea para eliminar archivos del origen con la fecha coincidente con el destino

/XOarchivos excluidos Misma fecha o archivos más nuevos en el destino /XNarchivos excluidos más antiguos en el origen y más nuevos en el destino

Algunos de los datos ya están en esa fuente.

Mi problema que quiero excluir más antiguo no es la misma fecha. Quiero asegurarme de mover (y sobrescribir para que la fuente se limpie) los datos con datos nuevos o iguales que la fuente.

Estoy usando el /XOinterruptor

/ XO: eXclude Older - si el archivo de destino existe y es la misma fecha o más reciente que la fuente - no se moleste en sobrescribirlo.

El problema es que también quiero mover los mismos datos de fecha, no solo los más nuevos. ¿Hay una manera de hacerlo?

Ahmad Bahrani
fuente
La razón por la que quiero copiar porque los archivos no se eliminarán en la fuente sin realmente copiar. Quiero hacerlo sin la necesidad de usar otra aplicación o código para comparar archivos similares y eliminarlos. la idea de limpiar el destino es inútil porque la fuente ya tiene algunos archivos que el destino no tiene. Gracias
Ahmad Bahrani
Así que supongo que lo único que olvido mencionar es que estoy haciendo esto continuamente, tengo un horario para iniciar el archivo por lotes de robocopy y moverlo de forma regular. Por lo tanto, no quiero hacer nada para verificar o eliminar manualmente. y el usuario va a mantener archivo de dumping en la fuente y necesito robocopy para moverlo al destino un script que compruebe el archivo por fecha modificar diferente y eliminarlos trabajarían demasiado
Ahmad Bahrani
Hola, LMFAO_A_JOKE, y muchas gracias por la repetición. para responder tu primer comentario. 1) "Mover cosa" en realidad significaba mover cosas = archivos 2) Eso es correcto solamente NUEVO 3) ¡Exactamente! . Entonces, supongo que esperaré tu actualización. si hay algo más que no esté claro, hágamelo saber, revisaré el formulario con más frecuencia
Ahmad Bahrani,

Respuestas:

0

Robocopy reemplaza el mismo movimiento de archivo de fecha

Datos de archivo de origen IF (más nuevos o iguales) mover / sobrescribir datos Otro archivo de omisión

Para completar esto, use Robocopy con el ejemplo de secuencia de comandos por lotes que proporcioné debajo de la sintaxis y todo.

Solo quiero excluir mayores no la misma fecha. Quiero asegurarme de mover (y sobrescribir para que la fuente se limpie) los datos con datos nuevos o iguales que la fuente.

El problema es que también quiero mover los mismos datos de fecha, no solo los más nuevos.

Dado que, de forma predeterminada, Robocopy solo copiará un archivo si el origen y el destino tienen marcas de tiempo diferentes o tamaños de archivo diferentes, debe usar el /ISinterruptor para que también copie los mismos datos, y luego, si usa el /MOVEinterruptor, ' También eliminaré esos archivos y carpetas de la fuente.


Opciones de Robocopy utilizadas

(Utilicé estos interruptores en particular, pero debe probar para confirmar que todo funciona como se esperaba por si acaso).

/S         : Copy Subfolders, but not empty ones.
/NP        : No Progress - don’t display % copied. (for cleaner log file)
/R:n       : Number of Retries on failed copies - default is 1 million.
/MOVE      : Move files and dirs (delete from source after copying).
/IS        : Include Same, overwrite files even if they are already the same.
/TS        : Include Source file Time Stamps in the output. (for log file)
/FP        : Include Full Pathname of files in the output. (for log file)
/LOG+:file : Output status to LOG file (append to existing log).

Para las siguientes variables de:

  • SET SRCRoot="\\Server\Share\Source"
  • SET DESTRoot="\\Server\Share\Destination"

Los SET SRCRooty SET DESTRootson los directorios raíz \ padre que copiará desde y hacia el nivel superior de forma recursiva. Puede configurar cualquiera de estos en una ruta de letra de unidad (por ejemplo C:\Path) o puede mantenerla como ruta UNC (es decir \\server\share\folder) y funcionará de cualquier manera.

  • SET LOG=C:Path\Log.txt

Este SET LOGes el nombre y la ubicación del archivo de registro adjunto También puede apuntar a una ruta completa de la unidad o una ruta UNC. Este es el archivo que puede revisar para obtener todos los detalles de lo que se copió, lo que no, los mensajes de error, etc. Esto es estrictamente opcional, pero sugeriría usarlo siempre y revisarlo según sea necesario para la resolución de problemas o la confirmación.

Ejemplo de script de lote de Robocopy

Si necesita copiar también la seguridad a nivel de archivo de los archivos y la carpeta que copia al origen desde el destino (las ACL), avíseme ya que probablemente quiera incluir los /SECo /COPYALLswithces.

@ECHO ON
SET SRCRoot="\\Server\Share\Source"
SET DESTRoot="\\Server\Share\Destination"
SET LOG=C:Path\Log.txt

:: --// Robocopy Options
:::: --// If you do not want a log file, remove the "/LOG+:%LOG%" below
SET OPT=/MOVE /IS /S /NP /R:5 /LOG+:%Log% /TS /FP
SET CMD=Robocopy "%SRCRoot%" "%DESTRoot%" *.* %OPT%
%CMD%
EXIT /B

Interruptores Robocoy opcionales

(Si necesita alguno de estos, hágamelo saber y estaré encantado de actualizar mi respuesta si necesita un ejemplo que incluya alguno)

/E       : Copy Subfolders, including Empty Subfolders.
/SEC     : Copy files with SECurity (equivalent to /COPY:DATS).
/DCOPY:T : Copy Directory Timestamps.
/COPYALL : Copy ALL file info (equivalent to /COPY:DATSOU)

Programación para automatización desatendida

Consulte mi respuesta Tareas programadas para ver las opciones, las trampas, etc. que desea seleccionar al programar un script por lotes con el Programador de tareas para que se ejecute como se espera. Se proporcionan capturas de pantalla y todo, y siéntase libre de votar esa respuesta si lo encuentra útil y valioso como tal, sin presión, solo un recurso adicional que puede encontrar útil.


Recursos adicionales y lectura

Pimp Juice IT
fuente
Gracias de nuevo por el código. Sin embargo, esto aún no resolverá el problema principal al que me enfrento, que es eliminar archivos que están en la fuente y son más antiguos que la distensión. No estoy tratando de hacer una copia espejo aquí. Estoy tratando de limpiar una fuente (que usamos como un búfer) moviendo los archivos que son más nuevos al destino y elimino la misma fecha o los archivos más antiguos. y estoy ejecutando esto en reclusión. La opción / PURGAR no ayudará porque está limpiando la distensión, algo que no quiero hacer.
Ahmad Bahrani
@AhmadBahran Acabo de agregar el /ISinterruptor y actualicé mi respuesta una vez más. Léalo desde arriba para ver los cambios y las notas, creo que esto lo ayudará, pero hágamelo saber de cualquier manera. Si desea incluir subcarpetas vacías desde el origen hasta el destino, hágamelo saber y agregaré el /Ey sacaré el /S.
Pimp Juice IT
Correcto, porque necesitaré lo que mencioné en el comentario anterior más este "eliminar archivos que están en la fuente y son más antiguos que la distensión". Move o mov, eliminará solo los datos o archivos que han sido copiados por robocopy. en mi caso, los datos que tienen la misma fecha que el destino no se copiarán por robocopy y, por lo tanto, no se eliminarán de la fuente. Y ese es mi dilema. Quiero eliminar archivos de la fuente que son más antiguos o de la misma fecha pero no obtuve una copia (así borrada) por robocopy
Ahmad Bahrani
Esa podría ser la respuesta a mi pregunta. Entonces, ¿qué hace / IS exactamente? Obtuve esto de un sitio web. / IS: Incluir los mismos, sobrescribir archivos incluso si ya son iguales. entonces sobrescribiría los archivos con la misma fecha
Ahmad Bahrani
Voy a probar esto ahora y nos
Ahmad Bahrani