Удалите файлы в папке назначения, которые больше не существуют в источнике, используя robocopy

У меня есть скрипт, который рекурсивно копирует файлы из источника в пункт назначения с помощью robocopy. Запускается раз в n минут. Я хочу удалить файлы из пункта назначения, которых больше нет в папке src. В robocopy /PURGE есть опция, но она удаляет и файлы, и каталоги, но я хочу удалить только файлы. Является ли это возможным?


person Nivetha S    schedule 18.08.2015    source источник


Ответы (1)


Запустите robocopy в обычном режиме, а затем еще раз в режиме списка, чтобы перечислить лишние файлы и удалить их вручную:

:loop

rem normal robocopy command without monitoring the source /mon switch
robocopy ..........

rem list the extra files and directories
for /f "tokens=2,*" %%a in ('^
    robocopy /njs /njh /ndl /ns /s /l /purge "SOURCEDIR" "TARGETDIR"^
') do (
    if %%a==File del "%%b"
)

timeout 300
goto loop
person wOxxOm    schedule 18.08.2015