中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-10 13:04
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 请问如何把目录下所有不在过虑列表文件中的文件删除? 查看 2,213 回复 17
16 Re 14楼 发表于 2008-11-12 09:53 ·  美国 惠普HP
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
你按照13的方法直接双击的结果如何呢?
17 发表于 2008-11-16 22:25 ·  中国 云南 昆明 电信
初级用户
★★
积分 76
发帖 64
注册 2008-04-24 23:56
18年会员
UID 116884
性别 男
状态 离线
先对各位帮助回复的大大说声抱歉,因为出差,一个星期没关注回帖了,sorry!

经测试,需要把bat及filter.txt放在gexperts的上一个同目录中,双击可以执行,结果也算正确,删除了所有非列表中的文件,谢谢.

不过还想提点小问题:1.执行后删除了文件,但留下了空目录.2.直接删除了就没了,我是需要测试那些文件需要用到保留不能删除,就添加到filter.txt列表中,可是现在是直接删除了,测试一个文件时需要重新复制整个目录来确定此文件是否被需要,能否把删除改成重命令,如a.xx 到a.xx_,这样我确定每个文件是否需要时就不用复制整个目录,只要改此文件名即可. 因为整个目录有几百个文件,所以提点此要求.

关于第2点,我自己尝试后发现用ren test1.bat *_ 就可以把test1.bat重命名为test1.bat_了,但不知在13楼的代码中应该如何写?
3.如何把test1.bat_这样的文件名重重名回test1.bat,即去掉_

我在for使用do ren "%%a" "%%a_" 或do ren "%%a" *_ 似乎都不正确

我再尝试,发现似乎不是上面的没有重命名,而且有很多类似GX_EditorExpert.pas这样的文件,对于这类文件名带_的文件,执行do ren "%%a" *_ 后GX_EditorExpert.pas就变成GX_了,根本就没有得到正确结果,后面的重命名自然无法继续执行下去了,因为GX_已经存在,无法再重命名.

[ Last edited by dejoy on 2008-11-16 at 22:42 ]
18 发表于 2008-11-16 22:43 ·  中国 云南 昆明 电信
初级用户
★★
积分 76
发帖 64
注册 2008-04-24 23:56
18年会员
UID 116884
性别 男
状态 离线
虽然我可以用~等其它文件名中没有的符号替换_实现目的,不过还是作为一个技术问题请教大家.

再请教一个,如果要把一个目录添加到Filter.txt中,而不只是文件名,如目录名.svn,则.svn目录下的所有文件都忽略,又应该怎么攺写呢?

[ Last edited by dejoy on 2008-11-16 at 23:03 ]
论坛跳转: