Board logo

标题: [文件操作] [已解决]批处理如何根据文件名的部分字符串复制文件到以该字符串命名的文件夹里? [打印本页]

作者: qq787851791    时间: 2015-11-2 15:42     标题: [已解决]批处理如何根据文件名的部分字符串复制文件到以该字符串命名的文件夹里?

本帖最后由 pcl_test 于 2016-8-5 20:24 编辑

1.文件夹tupian里有很多图片
如 201501fsfsddf.jpg
    201501fsfsddf.jpg
    201502fsfsddf.jpg
    201502fsfsddf.jpg
    201503fsfsddf.jpg
    201504fsfsddf.jpg

2.文件夹backpic下有很多对应月份的文件夹
如 201501
     201502
     201503
     201504
     ......
     201512
现在我想把tupian文件夹下的图片按照名称前6位复制到backpic下对应名称的文件夹里面
作者: qq787851791    时间: 2015-11-2 16:03

回复 1# qq787851791
比如把201501fsfsdf.jpg都复制到201501这个文件夹下面
作者: qq787851791    时间: 2015-11-2 16:48

来人啊 自顶
作者: pcl_test    时间: 2015-11-2 17:39

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for %%a in (tupian\*.jpg) do (
  4.     set "fn=%%~na"
  5.     md "backpic\!fn:~,6!\" 2>nul
  6.     copy "%%a" "backpic\!fn:~,6!\"
  7. )
  8. pause
复制代码

作者: WHY    时间: 2015-11-3 09:42

for /l %%i in (201501 1 201512) do copy tupian\%%i*.jpg backpic\%%i\
作者: qq787851791    时间: 2015-11-3 09:49

回复 4# pcl_test

@echo off
setlocal enabledelayedexpansion
for %%a in (D:\tupian\*.jpg) do (
    set "fn=%%~na"
    md "E:\backpic\!fn:~,6!\" 2>nul
    copy "%%a" "backpic\!fn:~,6!\"
)
pause

我改动了一下,加了指定盘,但是执行的时候报错:for此时不应有%%a,系统找不到指定文件,
    还有图片格式可能有好几种,png,jph等
麻烦帮忙改动一下
作者: qq787851791    时间: 2015-11-3 10:19

回复 5# WHY


    太给力了,兄弟~网络上多亏有你们这些热心助人的人,非常感谢,可以实现
作者: qq787851791    时间: 2015-11-3 10:35

回复 4# pcl_test
作者: just4fun    时间: 2015-12-18 20:50

回复 5# WHY


    运行结果有问题,201501和201511的jpg文件都会复制到201501的文件夹里,如何修改才能解决呢?
作者: pcl_test    时间: 2016-8-5 20:23

回复 8# qq787851791

保存为批处理文件运行,不是把代码复制粘贴到cmd窗口运行




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