![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-09-23 16:49 |
共 47,812 主题排行 / 349,917 发帖 / 今日 0 篇 / 48,274 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 请教:如何批量删除一个文件夹里的同一后缀名的文件 |
| 可打印版本 3,475 / 9 |
| 第1楼 dows | 发表于 2006-06-13 23:12 |
| 初级用户 发帖 12 积分 32 | |
|
请教:如何批量删除一个文件夹里的同一后缀名的文件 请教一下:如何批量删除一个文件夹里的同一后缀名的文件(如.gif)?
还有如何批量将光驱的盘里的文件夹里同一后缀名的文件(如.mp3)复制到硬盘里的一个文件夹里? [ Last edited by willsort on 2006-6-14 at 16:40 ] |
|
| 第2楼 namejm | 发表于 2006-06-13 23:56 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
|
批量删除某文件夹下同一后缀名的文件:
此代码只能删除位于当前目录下的文件,而不能删除子文件夹中的文件。如果要不加确认,请在del后加上静默参数 /q。 同样的道理,复制的代码是: |
|
| 第3楼 Climbing | 发表于 2006-06-14 01:07 |
| 铂金会员 发帖 2,753 积分 6,962 来自 河北保定 | |
|
晕,为什么不 del *.gif,写批处理写习惯了,却忘了通配符更简单。这叫偏执,嘿嘿。
或者copy *.mp3 todir /y |
|
| 第4楼 dows | 发表于 2006-06-14 10:27 |
| 初级用户 发帖 12 积分 32 | |
|
谢谢上两楼的指教 。
删除的用两个都行 (@for %%i in (*.gif) do del %%i,或 del *.gif),但是复制那个,怎么总不能把bat文件放到光盘里吧? 另外再问一下:怎么把删除的那 个bat(名为del.bat)移动到一个文件夹里的包含的不同文件夹里 ? [ Last edited by dows on 2006-6-14 at 10:55 ] |
|
| 第5楼 namejm | 发表于 2006-06-14 13:51 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
|
Climbing大哥说的是,用批处理习惯了,反倒忽视了最简单的办法
![]() 虽然不能把批处理放到光盘里去,但是可以用 cd /d 跳转到光盘指定目录,然后用copy命令就可以了,此时,bat可以放在任意目录下。要实现更多的功能,可以参照以下的代码进行修改。 如果要删除某个文件夹下所有的某类文件(包括子目录中的),可以用以下代码来实现,为了说明路径带空格需要用引号括起来这个细节,文件名都带了空格: |
|
| 第6楼 dows | 发表于 2006-06-14 17:31 |
| 初级用户 发帖 12 积分 32 | |
Originally posted by namejm at 2006-6-14 13:51: 我是菜鸟一个,不大懂楼上所说的,能否解释一下,谢谢!!!! @for /f %%i in ('dir /a /b s "D:\t est" ^|find ".mp3"') do copy /y %%i "D:\D irectory" 括号里的是什么意思啊?? 具体的说吧: 1 、 我想把F盘里 tu pian 文件夹里各个文件夹里的gif文件删除 2 、 把H盘(光驱盘)里的某个文件夹(如Beyond)里的mp3文件复制到E盘 Beyond里去 |
|
| 第7楼 namejm | 发表于 2006-06-14 17:55 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
|
刚才受willsort的提醒,以上代码中find ".mp3"语句可能会删掉形如test.mp3.lrc的文件,所以建议楼主不要采用以上代码。又翻看了一下for命令,发现了一个更好的办法。考虑到路径含有空格,并且文件名也可能含有空格,采用以下代码不至于漏删(批处理删文件有风险,操作须谨慎):
复制文件的代码如下: |
|
| 第8楼 willsort | 发表于 2006-06-14 17:57 |
| 元老会员 发帖 1,512 积分 4,432 | |
|
Re dows:
既然缺乏批处理的基础知识,那么建议在运行中输入:%systemroot%\help\ntcmds.chm 熟悉一下批处理和命令行。 现在,向你推荐另外一个简单的方法: 在资源浏览器中,右键单击 tu pian 或者 Beyond 文件夹选择“搜索”,然后在文件名框中输入 *.gif ,点击“搜索”,待完成后,Ctrl+A选择所有搜索结果,然后可以Del删除,Shift+Del彻底删除,Ctrl+C/Ctrl+V复制,Ctrl+X/Ctrl+V复制。 |
|
| 第9楼 namejm | 发表于 2006-06-14 18:06 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
|
现在对@for /f %%i in ('dir /a /b s "D:\t est" ^|find ".mp3"') do copy /y %%i "D:\D irectory"作个解释:
@ 为隐藏命令,隐藏它之后的命令在屏幕上的显示; for 对一组文件中的每一个文件都执行指定的命令。如果用在批处理中,变量要用双百分号%%引用;如果在CMD中使用,只需一个%就可以了; | 管道符号,可以把它之前的命令的输出内容作为它之后的命令的输入内容。 这段代码的过程大致是这样的: 先用dir命令把指定文件夹下的所有文件按照大小罗列出来,然后用find命令把dir的结果里文件名中含有.mp3字符串的文件提取出来,最后复制到指定文件夹下。 |
|
| 第10楼 electronixtar | 发表于 2006-06-14 18:12 |
| 铂金会员 发帖 2,672 积分 7,493 | |
来个最简单的: |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |