找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 18959|回复: 7

[文件操作] 批处理如何在文件名用*号时精确匹配扩展名

[复制链接]
发表于 2009-12-6 00:30:53 | 显示全部楼层 |阅读模式
如何在文件名用*号时精确匹配扩展名

如 del D:\*.tmp
它会把 像 .tmpll / .tmplx ……只要是扩展名前面是tmp的文件全删除
怎样在使用通配符 * 号时,能只删除 .tmp扩展名的文件呢?

还有
rem del /a /f /s /q "%SystemRoot%\driver?\*.pnf"
rem del /a /f /s /q "%SystemRoot%\driver?\InfCache.1"
里面的 ? 是表示一个安符的通配符还是本来是 s 乱码了而已?

[ 本帖最后由 wxfly 于 2009-12-6 00:35 编辑 ]
发表于 2009-12-6 09:02:48 | 显示全部楼层
第一个...我这里测试是可以的,你不会是用了*.tmp*叭!?
第二个...通配符(我这里测试是通配符)
发表于 2009-12-6 09:13:58 | 显示全部楼层
原帖由 Seter 于 2009-12-6 09:02 发表
第一个...我这里测试是可以的,你不会是用了*.tmp*叭!?
第二个...通配符(我这里测试是通配符)
W

VISTA测试 :
DEL得解释 del *.xx 只会删扩展名为.XX的文件而不会删扩展名为.XX1 .XX3 .XXX之类的文件
测试了几种文件都没问题,
但如楼主所说del D:\*.tmp它会把 像 .tmpll / .tmplx ……只要是扩展名前面是tmp的文件全删除

绝对不是*.tmp*
发表于 2009-12-6 09:15:32 | 显示全部楼层
难道是vista的BUG?
发表于 2009-12-6 12:31:42 | 显示全部楼层
怪了,tmpl真的被删掉了
那就这样..
for %%i in (d:\*.tmp) do if "%%~xi"==".tmp" del "%%i"
发表于 2009-12-6 13:24:19 | 显示全部楼层
貌似 dir del 比较的都是后缀的前三位
 楼主| 发表于 2009-12-6 14:02:26 | 显示全部楼层
原帖由 Seter 于 2009-12-6 12:31 发表
怪了,tmpl真的被删掉了
那就这样..
for %%i in (d:\*.tmp) do if "%%~xi"==".tmp" del "%%i"

我也想过用for
但我是要删除系统盘目录及其子目录下所有的.tmp,而不是一个固定目录下的

del /f /s /q %systemdrive%\*.tmp

不知是不是像这样写也成

~xi 是什么意思呢?

谢谢
 楼主| 发表于 2009-12-6 14:04:21 | 显示全部楼层
原帖由 yangfengoo 于 2009-12-6 13:24 发表
貌似 dir del 比较的都是后缀的前三位


我的系统是 win2008r2

你的这个说法应该是对的,
上面那位
DEL得解释 del *.xx 只会删扩展名为.XX的文件而不会删扩展名为.XX1 .XX3 .XXX之类的文件
测试了几种文件都没问题,
但如楼主所说del D:\*.tmp它会把 像 .tmpll / .tmplx ……只要是扩展名前面是tmp的文件全删除

当是两位时就不会这样,因为能比较前三位,但如果是三位以上相同就不行了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 04:05 , Processed in 0.023080 second(s), 10 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表