找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 24793|回复: 6

[文件操作] 批处理如何比较两个文件夹 并删除多余文件

[复制链接]
发表于 2021-1-17 21:03:27 | 显示全部楼层 |阅读模式
请教各位大大
我有两个文件夹  D:\1   和D:\2
D:\1 里面的文件是   xxxxx_0.jpg xxxxx_0.jpg  ....xxxxx_1.jpg  文件后面总有 _0  _1  _2  这样
D:\2 里面的文件是   xxxxx.jpg    xxxxx.jpg     ....xxxxx.jpg       文件后面没有 _0  _1  _2  这样的

现在想让  D:\2 里面的文件参照  D:\1 里面的文件进行删除   
比如说  D:\1 里面没有00001_0.jpg 则把D:\2里面的00001.jpg给删掉  

先谢谢了
发表于 2021-1-17 23:02:39 | 显示全部楼层
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=_ tokens=1" %%i in ('dir /b d:\1\*.jpg') do (
  4. echo %%i>>d:\1.txt
  5. )
  6. for /f "delims=" %%a in ('dir /b d:\2\*.jpg') do (
  7. echo %%~na>>d:\2.txt
  8. )
  9. for /f "delims=" %%b in ('type d:\2.txt') do (
  10. find "%%b" d:\1.txt || del "d:\2\%%b.jpg"
  11. )
  12. del d:\1.txt
  13. del d:\2.txt
  14. pause
复制代码
根据自己的情况进行修改吧
 楼主| 发表于 2021-1-17 23:13:32 | 显示全部楼层
回复 2# lancer


   很好用 谢谢啊
发表于 2021-1-18 08:19:50 | 显示全部楼层
回复 1# wxhyrzkkx
不用这么麻烦吧:
  1. @echo off
  2. for %%a in ("D:\2\*.jpg") do if not exist "D:\1\%%~na_*.jpg" del "%%a"
  3. pause
复制代码
发表于 2021-1-18 09:16:42 | 显示全部楼层
再说2楼代码不需要setlocal enabledelayedexpansion吧。
发表于 2021-1-18 10:38:08 | 显示全部楼层
回复 5# qixiaobin0715


    是的,不需要变量延迟。你的代码更好用,我也是才学习批处理。
发表于 2021-1-18 11:16:25 | 显示全部楼层
举个栗子你尝尝
  1. robocopy "1" "2" *.* /nocopy /mir
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 12:45 , Processed in 0.019116 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表