返回列表 发帖
本帖最后由 ppll2030 于 2024-10-17 22:59 编辑

回复 1# lhw


    代码保存为ANSI编码的bat文件,
假设两个文件夹名分别为11和22,把bat文件跟两个文件夹放一块,然后运行即可。
具体文件夹路径请自行修改。
  1. @echo off
  2. set "D1=11"
  3. set "D2=22"
  4. pushd %D1%
  5. for /f "delims=" %%a in ('dir /b /a-d') do (
  6. if exist "..\%D2%\%%a" for %%b in ("..\%D2%\%%a") do (
  7. rem 测试无误后,删除两个 echo 即为执行删除旧文件和同日期的多余文件
  8. if "%%~ta" geq "%%~tb" (echo del/q ..\%D2%\%%a) else echo del/q %%a)
  9. )
  10. popd&pause&exit/b
复制代码

TOP

回复 3# 77七

不会对工作目录(D1,D2和bat脚本所在的文件夹)下的文件进行操作。
脚本已经指定D1,D2这两个目录了,且不会对该目录下的子文件夹的文件进行操作。
操作顺序是先列出D1的文件,再根据D1中的文件查询D2中是否有相同文件名文件,
然后才比对这两个文件,最后保留日期较新的文件,相同日期的文件就删除D2中的文件。

TOP

回复 7# 77七


    哈哈,感谢大佬指点。
工作目录是自己想当然了。
二楼脚本已更新。

TOP

返回列表