[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[其他] 如何用批处理判断文件的扩展名并复制到指定文件夹?

小弟想请教各位高手,如何用一个批处理自动判断文件的扩展名,并将其复制到指定文件夹?
例如:我有三个文件夹,“图片”,“文档”,“影音”。
我想把任意文件拖到该批处理文件上,该批处理就会根据文件的扩展名,如果是rmvb,rm,则将其复制到“影音”文件夹。如果是jpg,bmp,则复制到“图片”文件夹。如果是xls,doc,pdf则复制到“文档”文件夹。

谢谢。

LZ试试这个方法吧

我也是初学,用下这个代码吧。文件路径根据你实际情况来,这里指定为c:\。有不明白的再问
  1. @echo off
  2. set "dot=%~x1"
  3. echo %dot%|findstr/i "rmvb rm"&&copy %1 c:\yy
  4. echo %dot%|findstr/i "jpg bmp"&&copy %1 c:\pit
  5. echo %dot%|findstr/i "xls doc pdf"&&copy %1 c:\doc
  6. pause
复制代码

[ 本帖最后由 pumahxh 于 2009-12-10 20:51 编辑 ]

TOP

回复 2楼 的帖子

问: 如果是 123rm.rm  和123rm.jpg  呢?
还有  记得文件夹后面有个“\”的  即c:\pit\

[ 本帖最后由 bluewing009 于 2009-12-10 22:13 编辑 ]

TOP

回复3楼

请问后缀名为.rm和.jpg的文件都复制到同一个文件夹下吗,如果是,只要在findstr “”的引号中添加这两个后缀名就可以了,详细用法请查看findstr/?

本代码一次只能拖一个文件。

回答第二个疑问:你可以自己试下代码,最后加不加"\"都可以

[ 本帖最后由 pumahxh 于 2009-12-10 22:24 编辑 ]

TOP

回复 3楼 的帖子

2楼代码注意加上适当的if和goto提高效率
findstr /i /e 或者 findstr /ie 或者在字符串中每个单词后面都加$

如果文件夹不存在:没有末尾的\时copy会报错,有则将源文件复制为该名称的副本。总之都不能达到正确目的。
如果文件夹存在,加不加都正确。
命令行参考:hh.exe ntcmds.chm::/ntcmds.htm
求助者请拿出诚心,别人才愿意奉献热心!
把查看手册形成条件反射!

TOP

谢谢版主指教!

感谢指导!明白了在此加不加“\”的意义。

但是你提出加if和goto语句增加效率,请问如何修改代码,因为我觉得题目简单,按照已知要求,感觉只能这么写,加IF反而感觉多余。请明示下。

还有“findstr /i /e 或者 findstr /ie 或者在字符串中每个单词后面都加$”,为什么,有什么好处?

TOP

回复 4楼 的帖子

如果是 从后向前读,就不必考虑我说的那种情况了

TOP

谢谢各位的热心帮助

TOP

返回列表