删除存在于另一个目录中的旧文件?

时间:2013-11-26 18:19:47

标签: windows batch-file filesystems xcopy robocopy

我有两个文件夹和文件夹几乎相同的文件夹。

我想整合它们并删除folderA中与folderB相同的所有文件(相同日期或更早版本)

有人已经问过Here只是在没有检查日期的情况下删除文件。

我想要类似的东西,但只有在年龄相同或更老的情况下才能删除。

谢谢

1 个答案:

答案 0 :(得分: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

如果包含任何错误,请随时发表评论,我会尽力解决。我替换了foldera和b代替folderb。