Board logo

标题: [文件操作] 【已解决】批处理如何根据文件名生成相应名的文件夹名并复制文件进去? [打印本页]

作者: 1134615818    时间: 2014-8-20 10:56     标题: 【已解决】批处理如何根据文件名生成相应名的文件夹名并复制文件进去?

本帖最后由 1134615818 于 2014-8-21 12:51 编辑

具体是这样的,现在在D:\aaa\bbb\f这个文件夹里有一批图片文件,现在想以这批图片文件名生成想应名的文件夹名,然后将这批文件夹放到E:\ttt\ggg\目录下面,并且将相应的文件拷到相应的文件夹里面,并在前缀名后面加上两个字“+1”
如果上面说得不够详细例如,D:\aaa\bbb\f文件夹里有rec.png   tde.png   fes.png   tes.png  王小丽.png  张红.png --------还有很多。以这些文件名生成相应的文件夹名字放到E:\ttt\ggg\目录下面,文件夹名:rec tde fes tes 王小丽 张红 -------还有很多。然后将上面的rec.png   tde.png   fes.png   tes.png  王小丽.png  张红.png --------复制到rec tde fes tes 王小丽 张红 -------这些文件夹里并在后缀名加上+1变成这样rec+1.png   tde+1.png   fes+1.png   tes+1.png  王小丽+1.png  张红+1.png --------另外在D:\aaa\bbb\f-0文件夹里还有一批文件名相同的图片文件rec+2.png   tde+2.png   fes+2.png   tes+2.png  王小丽+2.png  张红+2.png --------将这些也一一对应着前面名称的字眼放进相同的文件夹里,,,,

跪求高手给个解决代砖方案
作者: miskel    时间: 2014-8-20 12:47

http://www.bathome.net/thread-69-1-1.html
可以参照这个来修改
作者: 1134615818    时间: 2014-8-20 14:10

太复杂了,对于初学者的我来说,,,有无简单点,我看不明那个连接里的内容???求各位高手行行好吧,帮下小弟
作者: 1134615818    时间: 2014-8-20 15:16

未解决啊,求各位高手
作者: DAIC    时间: 2014-8-20 16:23

  1. @echo off
  2. set "src1=D:\aaa\bbb\f"
  3. set "src2=D:\aaa\bbb\f-0"
  4. set "dst=E:\ttt\ggg"
  5. for %%i in ("%src1%\*.png") do (
  6.     if not exist "%dst%\%%~ni\" (
  7.         md "%dst%\%%~ni"
  8.     )
  9.     copy "%%i" "%dst%\%%~ni\%%~ni+1%%~xi"
  10.     if exist "%src2%\%%~ni+2%%~xi" (
  11.         copy "%src2%\%%~ni+2%%~xi" "%dst%\"
  12.     )
  13. )
复制代码

作者: 1134615818    时间: 2014-8-20 17:30

谢谢这位高手认真解答,,但好象最后将全部文件文放到D盘根目录,+2的那些图片没有放在相应的文件夹里面了,我看不明这个代码,,高这位高手再解答下,在下不胜感激
作者: DAIC    时间: 2014-8-20 17:52

回复 6# 1134615818
  1. set "src1=D:\aaa\bbb\f"
  2. set "src2=D:\aaa\bbb\f-0"
  3. set "dst=E:\ttt\ggg"
  4. for %%i in ("%src1%\*.png") do (
  5.     if not exist "%dst%\%%~ni\" (
  6.         md "%dst%\%%~ni"
  7.     )
  8.     copy "%%i" "%dst%\%%~ni\%%~ni+1%%~xi"
  9.     if exist "%src2%\%%~ni+2%%~xi" (
  10.         copy "%src2%\%%~ni+2%%~xi" "%dst%\"
  11.     )
  12. )
  13. pause
复制代码
运行这个代码
结果发出来看看
作者: 1134615818    时间: 2014-8-20 20:04

谢谢这位高手,这次终于可以复制到指定文件目录里面了——但还是有一个地方有点不一样——就是图片那些在文件目录里的PNG文件也是放在同前缀名的文件目录里面的——例如那个   1-杭非+2.png  要放进到    1-杭非   文件夹里面,那个   55+2.png   要放进到  55   文件夹里面,那个   122-銀狐+2.png   要放到那个   122-銀狐  文件夹里面,……………………那个   山水紫+2.png     要放进到   山水紫  文件夹里面。只差这最后一步了——希望高手继续帮小弟完善这个代码,小弟不胜感激
作者: 1134615818    时间: 2014-8-21 10:06

自己顶下,求少将继续指点小弟
作者: DAIC    时间: 2014-8-21 10:32

回复 8# 1134615818
  1. @echo off
  2. set "src1=D:\aaa\bbb\f"
  3. set "src2=D:\aaa\bbb\f-0"
  4. set "dst=E:\ttt\ggg"
  5. for %%i in ("%src1%\*.png") do (
  6.     if not exist "%dst%\%%~ni\" (
  7.         md "%dst%\%%~ni"
  8.     )
  9.     copy "%%i" "%dst%\%%~ni\%%~ni+1%%~xi"
  10.     if exist "%src2%\%%~ni+2%%~xi" (
  11.         copy "%src2%\%%~ni+2%%~xi" "%dst%\%%~ni\"
  12.     )
  13. )
复制代码

作者: 1134615818    时间: 2014-8-21 11:47

谢谢少将这位高手,,运行过代码,正确了,万分感谢
作者: DAIC    时间: 2014-8-21 12:37

回复 11# 1134615818


    问题解决后,请编辑顶楼帖子在标题前面注明[已解决],并给回答者加分。




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