Saltar al contenido

Robocopy, no sobrescriba los archivos existentes, sino copie los nuevos o modificados

Solución:

No, esto no es posible con Robocopy. La duplicación de la ruta de una carpeta con Robocopy eliminará los archivos en el destino si ya no existen en el origen. Puede asegurarse de no sobrescribir archivos con versiones anteriores, pero no puede conservar versiones anteriores / cambiar el nombre durante el proceso de copia.

Escribí un script de comando / archivo por lotes que copia los archivos modificados, pero crea la estructura de árbol en función de la fecha en que se ejecuta el script

por ejemplo, mi árbol para un archivo en particular sería.

c:_archive201209
                    23
                        0930
                             Todays notes.txt
                        1145
                             Todays notes.txt
                    24
                        1000
                             Todays notes.txt

Podría publicar una muestra de ese guión si lo encuentra útil.

Debido a la demanda popular, a continuación encontrará mi script de copia de seguridad básico.

@echo off
cls
rem parse the output of the date /t command to create a date in the format yyyymmdd, and also remove the delimiter (/)
rem  store the results in environment variables
for /F "tokens=1,2,3,4 delims=/ " %%i IN ('date /t') do SET Z_DATE=%%k%%j%%i 
for /F "tokens=1,2,3,4 delims=/ " %%i IN ('date /t') do SET Z_YEAR=%%k
for /F "tokens=1,2,3,4 delims=/ " %%i IN ('date /t') do SET Z_MONTH=%%j
for /F "tokens=1,2,3,4 delims=/ " %%i IN ('date /t') do SET Z_DAY=%%i

echo date %Z_DATE%
echo year %Z_YEAR%
echo month %Z_MONTH%
echo day %Z_DAY%

rem parse the output of the time /t command to remove the delimeter (:)
rem  store the result in an environment variable
for /f "tokens=1,2 delims=:. " %%i IN ('time /t') do SET Z_TIME=%%i%%j

echo time %Z_TIME%
rem change the colour to a nice deep green on black.
color 02
::-------------------------

@echo on
xcopy "c:MyFiles*.*" "C:MyArchiveByDate%Z_YEAR%%Z_MONTH%%Z_DAY%%Z_TIME%%~p1%~n1" /ksymhr
@if @@ERRORLEVEL==1 SET Z_BACKUP_ERROR_FLAG=1

Goto End

::---------------------------------------------------------------------------
:NotifyUser
echo.
echo An error occurred during the backup.
echo.
pause

::---------------------------------------------------------------------------
:End

echo %Z_DATE%
echo %Z_TIME%
time /t

rem Clear out the environment variables
SET Z_DATE=
SET Z_TIME=
SET Z_BACKUP_ERROR_FLAG=

Si tiene alguna pregunta sobre este script (lo hice rápidamente desde mi script de respaldo principal y no lo probé a fondo), envíeme un correo electrónico a mi cuenta de Gmail con el asunto ‘Consulta del script de respaldo de falla del servidor’. Si puedes averiguar mi dirección de Gmail sin preguntar, estaré encantado de ayudarte.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags :

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *