标题: [其他] 如何用批处理判断文件的扩展名并复制到指定文件夹? [打印本页]
作者: smallbear 时间: 2009-12-10 18:31 标题: 如何用批处理判断文件的扩展名并复制到指定文件夹?
小弟想请教各位高手,如何用一个批处理自动判断文件的扩展名,并将其复制到指定文件夹?
例如:我有三个文件夹,“图片”,“文档”,“影音”。
我想把任意文件拖到该批处理文件上,该批处理就会根据文件的扩展名,如果是rmvb,rm,则将其复制到“影音”文件夹。如果是jpg,bmp,则复制到“图片”文件夹。如果是xls,doc,pdf则复制到“文档”文件夹。
谢谢。
作者: pumahxh 时间: 2009-12-10 20:44 标题: LZ试试这个方法吧
我也是初学,用下这个代码吧。文件路径根据你实际情况来,这里指定为c:\。有不明白的再问- @echo off
- set "dot=%~x1"
- echo %dot%|findstr/i "rmvb rm"&© %1 c:\yy
- echo %dot%|findstr/i "jpg bmp"&© %1 c:\pit
- echo %dot%|findstr/i "xls doc pdf"&© %1 c:\doc
- pause
复制代码
[ 本帖最后由 pumahxh 于 2009-12-10 20:51 编辑 ]
作者: bluewing009 时间: 2009-12-10 22:04 标题: 回复 2楼 的帖子
问: 如果是 123rm.rm 和123rm.jpg 呢?
还有 记得文件夹后面有个“\”的 即c:\pit\
[ 本帖最后由 bluewing009 于 2009-12-10 22:13 编辑 ]
作者: pumahxh 时间: 2009-12-10 22:18 标题: 回复3楼
请问后缀名为.rm和.jpg的文件都复制到同一个文件夹下吗,如果是,只要在findstr “”的引号中添加这两个后缀名就可以了,详细用法请查看findstr/?
本代码一次只能拖一个文件。
回答第二个疑问:你可以自己试下代码,最后加不加"\"都可以
[ 本帖最后由 pumahxh 于 2009-12-10 22:24 编辑 ]
作者: zqz0012005 时间: 2009-12-10 23:06 标题: 回复 3楼 的帖子
2楼代码注意加上适当的if和goto提高效率
findstr /i /e 或者 findstr /ie 或者在字符串中每个单词后面都加$
如果文件夹不存在:没有末尾的\时copy会报错,有则将源文件复制为该名称的副本。总之都不能达到正确目的。
如果文件夹存在,加不加都正确。
作者: pumahxh 时间: 2009-12-11 13:20 标题: 谢谢版主指教!
感谢指导!明白了在此加不加“\”的意义。
但是你提出加if和goto语句增加效率,请问如何修改代码,因为我觉得题目简单,按照已知要求,感觉只能这么写,加IF反而感觉多余。请明示下。
还有“findstr /i /e 或者 findstr /ie 或者在字符串中每个单词后面都加$”,为什么,有什么好处?
作者: bluewing009 时间: 2009-12-13 20:24 标题: 回复 4楼 的帖子
如果是 从后向前读,就不必考虑我说的那种情况了
作者: smallbear 时间: 2009-12-14 17:55
谢谢各位的热心帮助
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |