标题: [文件操作] 批处理如何比较两个文件夹 并删除多余文件 [打印本页]
作者: wxhyrzkkx 时间: 2021-1-17 21:03 标题: 批处理如何比较两个文件夹 并删除多余文件
请教各位大大
我有两个文件夹 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给删掉
先谢谢了
作者: lancer 时间: 2021-1-17 23:02
- @echo off
- setlocal enabledelayedexpansion
- for /f "delims=_ tokens=1" %%i in ('dir /b d:\1\*.jpg') do (
- echo %%i>>d:\1.txt
- )
- for /f "delims=" %%a in ('dir /b d:\2\*.jpg') do (
- echo %%~na>>d:\2.txt
- )
- for /f "delims=" %%b in ('type d:\2.txt') do (
- find "%%b" d:\1.txt || del "d:\2\%%b.jpg"
- )
- del d:\1.txt
- del d:\2.txt
- pause
复制代码
根据自己的情况进行修改吧
作者: wxhyrzkkx 时间: 2021-1-17 23:13
回复 2# lancer
很好用 谢谢啊
作者: qixiaobin0715 时间: 2021-1-18 08:19
回复 1# wxhyrzkkx
不用这么麻烦吧:- @echo off
- for %%a in ("D:\2\*.jpg") do if not exist "D:\1\%%~na_*.jpg" del "%%a"
- pause
复制代码
作者: qixiaobin0715 时间: 2021-1-18 09:16
再说2楼代码不需要setlocal enabledelayedexpansion吧。
作者: lancer 时间: 2021-1-18 10:38
回复 5# qixiaobin0715
是的,不需要变量延迟。你的代码更好用,我也是才学习批处理。
作者: smss 时间: 2021-1-18 11:16
举个栗子你尝尝- robocopy "1" "2" *.* /nocopy /mir
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |