标题: [文件操作] [已解决]BAT如何批量将含有关键字符的文件移动到含有关键字符的文件夹 [打印本页]
作者: 城外无诚 时间: 2021-9-1 22:56 标题: [已解决]BAT如何批量将含有关键字符的文件移动到含有关键字符的文件夹
本帖最后由 城外无诚 于 2021-9-2 11:31 编辑
公司收集人员证件,“人员”文件夹下含有以“A”——“Z”姓氏首字母名命的子文件夹,每个子文件夹下有以“姓氏首字母+序号+姓名”为格式的个人文件夹。如“A'文件夹下有”A01安然“、”A121安戈俊“,”G“文件夹下有”G01高峰“、”G22高建国“...
现新收集了一批证件,统一存储于一个文件夹内。证件命名格式为”姓名-证书名称“,如”张三-注册建造师“、”李四方-造价工程师“。
求如何通过bat批量将新收集的证件移动至相关人员的个人文件夹中。
作者: 城外无诚 时间: 2021-9-2 08:33
求大佬帮忙!
作者: qixiaobin0715 时间: 2021-9-2 08:57
回复 2# 城外无诚
如果收集的文件在D:\IdInformation中,将下列代码放在“人员”文件夹下:- @echo off
- set Folder=D:\IdInformation
- copy "%Folder%\*.*" "%~dp0"
- for /f "delims=-" %%a in ('dir /b /a-d') do move "%%a-*.*" "*%%a\"
- pause
复制代码
作者: Batcher 时间: 2021-9-2 09:07
回复 1# 城外无诚
序号的数字个数不固定是吗,有的2位数字,有的是3位数字?
作者: Batcher 时间: 2021-9-2 09:08
回复 3# qixiaobin0715
张高五、高五,可能有类似这样的两个名字吧。
作者: qixiaobin0715 时间: 2021-9-2 09:41
回复 5# Batcher
是的,忽略了。那样的话代码就要复杂一些了。
作者: 城外无诚 时间: 2021-9-2 09:43
回复 4# Batcher
对,从01开始,最多就到3位数。
作者: 城外无诚 时间: 2021-9-2 09:44
回复 5# Batcher
是的,我现在用的方法就是会有这种情况,名字前两个字一样的话文件会同时复制到两个人的文件夹中。
作者: 城外无诚 时间: 2021-9-2 09:47
回复 3# qixiaobin0715
您好,我试了一下。有两个问题。
1、文件只是复制到了“人员”文件夹目录下,并没有复制到对应人员的个人文件夹。
2、其他不含关键字的文件也一并复制过来了。
作者: qixiaobin0715 时间: 2021-9-2 09:56
回复 9# 城外无诚
请你分别tree /f一下“人员”和“收集的人员信息”文件夹,发上来看看;建议将文件夹名中的序号都改为001/002...三位数,可以减少代码的复杂性,处理起来效率也高。
作者: qixiaobin0715 时间: 2021-9-2 10:09
文件名中“-”前后是否存在空格?
作者: Batcher 时间: 2021-9-2 10:57
回复 1# 城外无诚
“人员”文件夹
“证件”文件夹
“test.bat”文件
放在同一个目录下
请参考Q-04把bat文件保存为ANSI编码:
https://mp.weixin.qq.com/s/6lbb97qUOs1sTyKJfN0ZEQ- @echo off
- cd /d "%~dp0"
- set "SrcFolder=证件"
- set "DstFolder=人员"
- for /f "tokens=1-2 delims=-" %%a in ('dir /b /a-d "%SrcFolder%"') do (
- for /f "delims=" %%i in ('dir /b /ad "%DstFolder%"') do (
- pushd "%DstFolder%\%%i"
- for /f "delims=" %%j in ('dir /b /ad') do (
- for /f "tokens=1-2 delims=0123456789" %%k in ("%%j") do (
- if "%%a" equ "%%l" (
- move /y "%~dp0%SrcFolder%\%%a-%%b" "%~dp0%DstFolder%\%%i\%%j\"
- )
- )
- )
- popd
- )
- )
复制代码
作者: 城外无诚 时间: 2021-9-2 11:28
回复 12# Batcher
可以用,非常感谢!
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |