Board logo

标题: [文件操作] 批处理如何根据文件名的部分字符移动文件到指定文件夹? [打印本页]

作者: batchuli    时间: 2016-1-1 13:22     标题: 批处理如何根据文件名的部分字符移动文件到指定文件夹?

怎么把不同文件名的文件移动到对应的文件夹中(每个文件夹对应的含有“被移动文件”文件名的某个字段)
例如,文件:xxxAxxx,xxxBxxx,xxxCxxx,......
      文件夹:xxxA,xxxB,xxxC,......,其中xxx代表“不同”的字段
   处理结果:xxxAxxx移到xxxA,xxxBxxx移到xxxB,xxxCxxx移到xxxC

——————哪位大神能帮小弟解决这个技术问题,万分感谢!
作者: batchuli    时间: 2016-1-1 13:29

在网上查了好久都找不到解决办法,自己又研究不出来,只能求助各位大神了
作者: pcl_test    时间: 2016-1-1 13:38

不知是否在论坛搜索过没?当然搜索也是有一定技巧的
作者: batchuli    时间: 2016-1-1 14:05

搜索过了,但没找到想要的
作者: hlzj88    时间: 2016-1-1 16:35

获得某文件的文件名,截取文件名的前五位建文件夹,并移动文件到这个文件夹里,
作者: /zhqsystem/zhq    时间: 2016-1-2 00:42

回复 1# batchuli
依据当前路径文件夹名称执行,如果没有文件夹则不执行,依据文件执行错误率太高,没有很明显的分隔符
  1. @echo off
  2. for /f "delims=" %%i in ('dir/ad/b/l/on ".\xxx*.*"')do (
  3. for /f "delims=" %%j in ('dir/a-d/s/b/l/on ".\%%i*.*"')do (
  4.   echo, "%%j" ".\%%i\"
  5. )
  6. )
  7. pause
复制代码

作者: batchuli    时间: 2016-1-2 16:23

回复 6# /zhqsystem/zhq


    不好意思,是我前面表述不够清晰。在同一个目录下,有许多文件跟许多对应的文件夹,而对应的文件跟文件夹有关联的地方就是只有“姓名”字符相同。匹配 文件夹第19位即“-”字符后面的姓名,跟文件名称中间的姓名(姓名字数不是固定的,会变化)   有办法解决吗
作者: 回家路上    时间: 2016-1-2 16:56

  1. @echo off
  2. for /f "tokens=1,2 delims=-" %%i in ('dir /ad /b') do (
  3. echo;%%j
  4. for /f "delims=" %%a in ('dir /a-d /b "*%%j*.*" 2^>nul') do (
  5. echo;        %%a  移入 %%i-%%j
  6. move /y "%%a" %%i-%%j >nul 2>nul
  7. )
  8. )
  9. pause & exit /b
复制代码

作者: batchuli    时间: 2016-1-2 17:55

回复 8# 回家路上


    解决了,谢谢大神。
    bat功能很强大,没时间也要挤时间出来学习!
作者: batchuli    时间: 2016-1-2 18:08

回复 8# 回家路上


    如果姓名有重复字符的,移动会出乱,比如:文件:xx杨品泽.txt,xx杨品.txt,  文件夹:xx杨品泽,xx杨品。处理结果:xx杨品泽.txt,xx杨品.txt都移入了“xx杨品”文件夹。我再好好研究一下
作者: ww0000    时间: 2018-4-20 20:31

回复 8# 回家路上


    移动了找不到了?




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