Board logo

标题: (已结)一个关于删除大小和类型一样的文件的问题! [打印本页]

作者: WinXYhappy     时间: 2006-10-26 05:25    标题: (已结)一个关于删除大小和类型一样的文件的问题!

例如:如果一个文件夹下有如下文件(文件夹名知道asd,文件夹里面的文件很多,无法手动列出):

驱动器 D 中的卷是 WINDOWS
卷的序列号是 E42C-4D75

D:\asd\asd 的目录

2006-10-24  17:47    <DIR>          ..
2006-10-24  17:47    <DIR>          .
2006-10-20  11:47             1,226 tftp.txt
2006-10-16  15:51             2,306 ftp1         server.txt
2006-10-16  15:51             2,306 ftp1.txt
2006-10-16  15:51             2,306 ftp2.txt
2006-10-16  15:51             2,306 ftp3.txt
2006-10-16  15:51             2,306 ftp1.rar
2006-10-16  15:51             2,306 ftp1.log
2006-10-16  15:51             2,306 ftp2         server.txt
2006-10-20  14:30            10,752 ftp1.doc
               9 个文件         28,120 字节
               2 个目录 12,679,954,432 可用字节


如何将大小一样并且文件类型一样的文件删除???
(也就是说要删除:ftp2.txt,ftp3.txt,ftp2         server.txt这三个文件,)

[ Last edited by WinXYhappy on 2006-10-27 at 05:23 AM ]
作者: vkill     时间: 2006-10-26 07:58
记得有个小东西直接可以删除的,est 发过
作者: lxmxn     时间: 2006-10-26 09:05

  楼主是要删除全部大小和类型一样的文件,还是保留一个,其它的都删除呢?

作者: electronixtar     时间: 2006-10-26 10:13

for /f "delims=" %a in ('dir /a ^| find "2,306"') do @echo %a
确认无误后把 echo %a 改成 del %a
作者: WinXYhappy     时间: 2006-10-26 20:16


  Quote:
Originally posted by lxmxn at 2006-10-26 09:05 AM:

  楼主是要删除全部大小和类型一样的文件,还是保留一个,其它的都删除呢?

保留一个。删除其它的大小跟这个一样“并且”类型“也一样的的文件。
作者: 不得不爱     时间: 2006-10-26 20:29
4楼的不能满足要求
作者: WinXYhappy     时间: 2006-10-26 20:39


  Quote:
Originally posted by electronixtar at 2006-10-26 10:13 AM:
for /f "delims=" %a in ('dir /a ^| find "2,306"') do @echo %a
确认无误后把 echo %a 改成 del %a

我的意思是:首先,我们不知道文件夹里有多少个文件(因为太多了没法手工列出来),然后不知道文件的大小。只知道文件夹的名和文件夹路径。上面列出来的是举的一个简单的例子。实际上有很多文件(主要是.doc,.xls文件太多了没法在这列出来)并且有很多名字类似,大小一样的文件其实是一样的。所以要删除之节省空间。
希望electronixtar能再帮忙改进一下。顺便问问批处理能否实现模糊匹配例如:将(temp1.doc,temp2.doc,temp3.doc,temp4.doc~~)删除temp2~~.doc保留temp1.doc。
注:temp只是代指要处理的文件。
作者: electronixtar     时间: 2006-10-26 20:58
很简单,把 temp1.doc 复制出来,把文件夹删除了;
作者: WinXYhappy     时间: 2006-10-26 23:56


  Quote:
Originally posted by electronixtar at 2006-10-26 08:58 PM:
很简单,把 temp1.doc 复制出来,把文件夹删除了;

郁郁郁郁郁郁郁郁郁郁闷了!
不过我想做学问就是这样吧!

我的意思是这个文件夹我知道其命,但是文件夹里的文件明我不知道(所以上面的temp只是代指,,,,,代指。不是实际的)。因为文件太多了,我没发一一列出来。
例如例如例如例如:
有temp1.doc,temp2.doc,temp3.doc~~
tmp1.xls,tmp2.xls,tmp3.xls~~
study1.txt,study2.txt~~
***1.gif,***2.gif~~~~

所以这个dir的功能也要在del.bat里在实现,并且还要找到(***)然后执行删除重复文件的功能。不知electronixtar明白了没。哎呀我表达能力呀,所以。。。。。。。。。。哈哈哈哈哈哈。electronixtar要认真揣摩一下我的意思了。谢谢了。
作者: electronixtar     时间: 2006-10-27 00:09
如果该操作只有一次的话,可以通过Windows的搜索功能来完成,嘿嘿~
作者: electronixtar     时间: 2006-10-27 00:11


  Quote:
哈哈哈哈,我找了一上午关于删除的都看了。好像不太合乎我的条件。

那是he200377看错了,我当时看了楼主的题目也认为是真正的顽固重名文件,结果是重复文件呢。呵呵
作者: 不得不爱     时间: 2006-10-27 01:10
这个问题有点难度
作者: vkill     时间: 2006-10-27 01:15
要是把文件内容重复的删除那不好办~
作者: WinXYhappy     时间: 2006-10-27 02:46
不是的,我要重复执行很多次。太多了,所以我想写个批处理来完成。
自己本事又不高所以,来求助各路大侠了。
哈哈哈
作者: electronixtar     时间: 2006-10-27 02:52
记得一个软件叫:重复文件查找器
作者: WinXYhappy     时间: 2006-10-27 02:56


  Quote:
Originally posted by he200377 at 2006-10-27 01:15 AM:
要是把文件内容重复的删除那不好办~

不是不是,那样就太复杂了。其实是这样的:
这个文件夹里有很多一样(内容一样)的文件。
只是在文件命名命名的时候,所以就会出现*1*.txt,*2*.txt~~
其实只要把*1*保存,其它都不要就够了。
而像temp1.txt于tmp1.txt是不一样(文件大小)的。
只有temp1.txt于temp2.txt是一样的。这样会简单一点吧?????
谢谢了!
作者: WinXYhappy     时间: 2006-10-27 03:01


  Quote:
Originally posted by electronixtar at 2006-10-27 02:52 AM:
记得一个软件叫:重复文件查找器

啊啊啊啊啊,还有种东西。我去找找。不过还是希望能帮我解决这个问题。
谢谢electronixtar大虾的鼎力指导。
作者: 不得不爱     时间: 2006-10-27 03:24
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
for /f "tokens=*" %%a in ('dir/a-d/b/oe') do set/a c+=1&set a!c!=%%a&set b!c!=%%~za&set c!c!=%%~xa
for /l %%a in (1,1,%c%) do set/a d=%%a+1&for /l %%b in (!d!,1,%c%) do if not !b%%a!.==. call :1 %%a %%b
goto :eof
:1
if !b%1!==!b%2! if !c%1!==!c%2! set b%2=&del "!a%2!"
goto :eof
作者: 不得不爱     时间: 2006-10-27 03:28
经过反复试验上面的代码应该可以解决楼主的问题,不过这个主题是不是发错地方了?
作者: WinXYhappy     时间: 2006-10-27 03:52


  Quote:
Originally posted by qwe1234567 at 2006-10-27 03:24 AM:
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
for /f "tokens=*" %%a in ('dir/a-d/b/oe') do set/a c+=1&set a!c!=%%a&set b!c!=%%~za&set c!c!=%%~xa
for /l %%a in (1,1,%c%) do set/ ...

哈哈哈哈哈哈,多谢qwe1234567版主的perfect codes。完全成功!!!

在这里还要感谢electronixtar,我的表达能力让他花费了许多脑细胞。不过我也学会了许多.bat知识,以后我会继续请教:electronixtar大虾的,不过又要浪费electronixtar的许多脑细胞了-_-。^_^

同样要感谢he200377,lxmxn大虾们的关注,不然我的帖要沉到海底去了!!

!!!!!这些话怎么这么熟悉!!!!好像是*****TV里的台词一样。

^_^多谢各位了,qwe1234567版主说的不错,我认真出去看了看门牌号。。郁闷进错门了!不过一错错到底吧,就到这落个户也不错。况且上面的code我还有不懂的地方要请教。
作者: 不得不爱     时间: 2006-10-27 03:56
我还是给转到{DOS批处理 & 脚本技术(批处理室)}吧,
作者: WinXYhappy     时间: 2006-10-27 04:03


  Quote:
Originally posted by qwe1234567 at 2006-10-27 03:56 AM:
我还是给转到{DOS批处理 & 脚本技术(批处理室)}吧,

qwe1234567版主,你要我怎么说你!!
你就是好人。^_^
作者: vkill     时间: 2006-10-27 04:12
文章标题严重错误,怎么可以说是重复文件???引导我们错误的理解
作者: WinXYhappy     时间: 2006-10-27 04:20


  Quote:
Originally posted by he200377 at 2006-10-27 04:12 AM:
文章标题严重错误,怎么可以说是重复文件???引导我们错误的理解

^_^,不好意思,我就说我语文不好吗。
不然electronixtar大虾也不会浪费如此多的脑细胞了。哈哈哈。
我也希望有大侠可以加QQ或MSN之类的,这样如果不懂,我也好慢慢解释。不过。。。。我试过很多次了没人加我。5555555555555555555~~~~~。
只好不厌其烦慢慢问了,也希望各位大虾能体谅吧!!
作者: 不得不爱     时间: 2006-10-27 04:39
因为标题与内容不符合,请楼主修改标题名为:
(已结)一个关于删除大小和类型一样的文件的问题!
否则楼主可能会被扣积分!方法是点主题下面的 编辑 进行编辑!
作者: WinXYhappy     时间: 2006-10-27 05:23


  Quote:
Originally posted by qwe1234567 at 2006-10-27 04:39 AM:
因为标题与内容不符合,请楼主修改标题名为:
(已结)一个关于删除大小和类型一样的文件的问题!
否则楼主可能会被扣积分!方法是点主题下頮..

收到,马上解决!哈哈哈