标题: [文件操作] 批处理如何根据文件名的部分字符移动文件到指定文件夹? [打印本页]
作者: 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
依据当前路径文件夹名称执行,如果没有文件夹则不执行,依据文件执行错误率太高,没有很明显的分隔符
- @echo off
- for /f "delims=" %%i in ('dir/ad/b/l/on ".\xxx*.*"')do (
- for /f "delims=" %%j in ('dir/a-d/s/b/l/on ".\%%i*.*"')do (
- echo, "%%j" ".\%%i\"
- )
- )
- pause
复制代码
作者: batchuli 时间: 2016-1-2 16:23
回复 6# /zhqsystem/zhq
不好意思,是我前面表述不够清晰。在同一个目录下,有许多文件跟许多对应的文件夹,而对应的文件跟文件夹有关联的地方就是只有“姓名”字符相同。匹配 文件夹第19位即“-”字符后面的姓名,跟文件名称中间的姓名(姓名字数不是固定的,会变化) 有办法解决吗
作者: 回家路上 时间: 2016-1-2 16:56
- @echo off
- for /f "tokens=1,2 delims=-" %%i in ('dir /ad /b') do (
- echo;%%j
- for /f "delims=" %%a in ('dir /a-d /b "*%%j*.*" 2^>nul') do (
- echo; %%a 移入 %%i-%%j
- move /y "%%a" %%i-%%j >nul 2>nul
- )
- )
- 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 |