中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: 求教 DEL /s/q e: *.tmp 上一主题 | 下一主题
yangfengoo
初级用户




积分 47
发帖 41
注册 2009-4-24
状态 离线
『楼 主』:  求教 DEL /s/q e: *.tmp

我想删除E盘所有的TMP格式文件就写了
DEL /s/q e: *.tmp
怎么一运行就什么都没了?
错哪了?

2009-4-29 09:44
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
yangfengoo
初级用户




积分 47
发帖 41
注册 2009-4-24
状态 离线
『第 2 楼』:  

另如果
for /r e:\ %%a in (*.tmp) do del "%%a"  
怎么会删除*.tmp2等文件
难道*.tmp只匹配到.后面3位?象*.tmp3,*.tmpY,*.tmpHHH,都算*.tmp?

2009-4-29 09:58
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
yangfengoo
初级用户




积分 47
发帖 41
注册 2009-4-24
状态 离线
『第 3 楼』:  

苍天啊,大地啊。
回复呢 ?怎么不见了啊!

2009-4-30 00:11
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
tireless
银牌会员





积分 2025
发帖 1122
注册 2007-9-5
状态 离线
『第 4 楼』:  

我也一直以为 *.tmp 就表示扩展名为 tmp 的文件...

原来 *.tmp 匹配的文件是,最后一个点后面含“tmp”。如有以下文件:

a.tmp
a.tmp2
a.tmp.txt

dir /b *.tmp 会匹配前两个文件。

————————————————————————————————————————

可以改成:
for /r e: %%a in (*.tmp) do del "%%~dpna.tmp" 2>nul

for /f "delims=" %%a in ('dir/b/a-d/s e:\*.tmp^|findstr /i "\.tmp$"') do del "%%a"
————————————————————————————————————————

奇怪的结果:

  Quote:
C:\Test>dir /b
1.bat
1.bat.123
12.bat
12.bat123
123.bat123

C:\Test>dir /b ?.bat
1.bat

C:\Test>dir /b ??.bat
1.bat
12.bat

C:\Test>dir /b ???.bat "我以为会匹配 123.bat123"
1.bat
12.bat

C:\Test>dir /b ????.bat
1.bat
12.bat

C:\Test>dir /b ?????.bat
1.bat
12.bat
123.bat123

C:\Test>dir /b ??????.bat
1.bat
12.bat
123.bat123

C:\Test>dir /b ???????.bat
1.bat
12.bat
123.bat123

C:\Test>dir /b ????????.bat
1.bat
12.bat
12.bat123
123.bat123

[ Last edited by tireless on 2009-4-30 at 00:32 ]

2009-4-30 00:26
查看资料  发短消息 网志   编辑帖子  回复  引用回复
yangfengoo
初级用户




积分 47
发帖 41
注册 2009-4-24
状态 离线
『第 5 楼』:  

我也测试了的确很奇怪。不明白怎么会这样。

2009-4-30 01:19
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: