Não, isso não é possível usando o Robocopy. Espelhar um caminho de pasta usando o Robocopy excluirá os arquivos no destino se eles não existirem mais na origem. Você pode garantir que não sobrescreva arquivos com versões mais antigas, mas não poderá manter versões / renomeações mais antigas durante o processo de cópia.
Eu escrevi um script de comando / arquivo em lote que copia arquivos modificados, mas cria a estrutura em árvore com base na data em que o script é executado
por exemplo. minha árvore para um arquivo em particular seria.
c:\_archive1209\
23\
0930
Todays notes.txt
1145
Todays notes.txt
24\
1000
Todays notes.txt
Eu poderia postar uma amostra desse script se você achar isso útil.
Devido à demanda popular, encontre abaixo meu script de backup 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:\MyArchive\ByDate\%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=
se você tiver alguma dúvida sobre esse script (eu o copiei rapidamente do meu script de backup principal e não o teste completamente), envie-me por e-mail para minha conta do Gmail com a linha de assunto 'Consulta de script de falha de servidor'. Se você puder resolver meu endereço do Gmail sem perguntar, ficarei feliz em ajudá-lo.