Board logo

标题: [文件操作] 批处理怎样复制文件? [打印本页]

作者: 巛悲剧    时间: 2011-4-8 16:32     标题: 批处理怎样复制文件?

有没有办法批量处理一个文件夹内的图片。然后更具名称,自动复制到相应的文件夹内。

列:

A文件夹内有
100-a.jpg  100-b.jpg 100-c.jpg  100(1).jpg  100(2).jpg 100(3).jpg  。。。
200-a.jpg 200-b.jpg 200-b.jpg   200(1).jpg 200(2).jpg 200(3).jpg  。。。
等文件

然后自动在该目录下新建
100文件夹和 200文件夹,(忽略-和()后面的数据只需要前面的字符段,可能包含字母,长度不固定。

100文件夹内复制入 100-a.jpg  100-b.jpg 100-c.jpg 100(1).jpg  100(2).jpg 100(3).jpg
200文件夹内复制入 200-a.jpg  200-b.jpg 200-c.jpg 200(1).jpg 200(2).jpg 200(3).jpg

如果有同名文件的话 则替换原来的。


量比较多,可能会有300多个文件夹,然后有上千张图片。这个需要考虑下哦。

先表示感谢
作者: 巛悲剧    时间: 2011-4-8 16:52

求助,谁能帮助我下。
作者: 巛悲剧    时间: 2011-4-8 17:09

没有人能理解我的意思吗?希望能活动帮助。一直守着帖子
作者: namejm    时间: 2011-4-8 17:24

1、标题因为过于宽泛而违规,请修改为一个更加具体的标题;
2、你的文件夹结构是什么样的?请详细说明;比如这300个文件夹都在同一路径的同一层上,还是它们含有子目录?或者是在不同的位置上?
3、请在某个文件夹下测试如下代码:
  1. @echo off
  2. for %%i in (*.jpg) do (
  3.     for /f "delims=-(" %%j in ("%%i") do (
  4.         md "%%j" 2>nul
  5.         copy /y "%%i" "%%j"
  6.     )
  7. )
  8. pause
复制代码

作者: batman    时间: 2011-4-8 17:26

在a目录下运行:
  1. @echo off
  2. for /r %%a in (*.jpg) do (
  3.      for /f "delims=-(" %%b in ("%%~na") do (
  4.           if not exist %%b md %%b
  5.           copy /y "%%~nxa" "%%b\"     
  6.      )
  7. )
复制代码

作者: qlkemfg    时间: 2011-4-8 17:28

第一:文件夹名称的规则是什么,是遇到-或者(就截取前面所有的字符串,用这些字符串命名文件夹,还是说取前3个字符,用这3个字符命名文件夹
第二:在第一条未明确的情况下,可能出现名称为100的文件夹和名称为1000的文件夹,此时若相片的名称为1000-a.jpg,放入100还是1000
第三:图片都在一个文件夹内,如何会出现同名文件,你那句覆盖想表达一个什么要求




欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2