2013-11-26 4 views
0

У меня есть две папки, у которых почти одинаковые файлы и папки.удалить старые файлы, которые существуют в другом каталоге?

Я хочу, чтобы объединить их и удалить все файлы в folderA, которые являются одинаковыми в folderB (та же дата и старше)

Кто-то уже спрашивал Here о просто удаление файлов без проверки даты.

Я хочу что-то подобное, но оно должно удаляться только в том же возрасте или старше.

Спасибо

+0

Вы пробовали robocopy? – nephi12

+0

Я просто хочу удалить, а не копировать. Можно ли это сделать с помощью robocopy? – monsey11

+0

yah, но я думаю, что знаю лучший способ, дайте мне секунду – nephi12

ответ

0

попробовать это:

@echo off&setlocal enabledelayedexpansion 
pushd "%~dp0" 


for /f %%i in ('dir /b a') do (call:CmpFTime LSS "a\%%~ni" "b\%%~ni"&&del "a\%%~ni") 


:CmpFTime 
SETLOCAL 
set op=%~1 
set fileL=%~2 
set fileR=%~3 
set attrL=%~4 
set attrR=%~5 
if "%op%"=="" set op=== 
if "%attrL%"=="" set attrL=/tw 
if "%attrR%"=="" set attrR=%attrL% 
for /f "tokens=1-6 delims=/: " %%a in ('"dir %attrL% /-c "%fileL%"|findstr "^^[0-1]""') do (
    set TL=%%c%%a%%b%%f%%d%%e 
) 
for /f "tokens=1-6 delims=/: " %%a in ('"dir %attrR% /-c "%fileR%"|findstr "^^[0-1]""') do (
    set TR=%%c%%a%%b%%f%%d%%e 
) 
if "%TL%" %op% "%TR%" (rem.) ELSE set=2>NUL 
EXIT /b 

если содержит какие-либо ошибки, не стесняйтесь комментировать, и я сделаю все возможное, чтобы исправить их. Я заменил a для foldera и b для папки b.

+0

, пожалуйста, отметьте правильный ответ, если это вам помогло. – nephi12

+0

Я не попробовал, потому что мне нужно было быстро исправить, и в итоге я сделал что-то еще. В любом случае, спасибо, но я didnt проверил код. – monsey11

Смежные вопросы