[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] [已解决]BAT如何批量将含有关键字符的文件移动到含有关键字符的文件夹

本帖最后由 城外无诚 于 2021-9-2 11:31 编辑

公司收集人员证件,“人员”文件夹下含有以“A”——“Z”姓氏首字母名命的子文件夹,每个子文件夹下有以“姓氏首字母+序号+姓名”为格式的个人文件夹。如“A'文件夹下有”A01安然“、”A121安戈俊“,”G“文件夹下有”G01高峰“、”G22高建国“...
现新收集了一批证件,统一存储于一个文件夹内。证件命名格式为”姓名-证书名称“,如”张三-注册建造师“、”李四方-造价工程师“。
求如何通过bat批量将新收集的证件移动至相关人员的个人文件夹中。

回复 12# Batcher


    可以用,非常感谢!

TOP

回复 1# 城外无诚


“人员”文件夹
“证件”文件夹
“test.bat”文件
放在同一个目录下

请参考Q-04把bat文件保存为ANSI编码:
https://mp.weixin.qq.com/s/6lbb97qUOs1sTyKJfN0ZEQ
  1. @echo off
  2. cd /d "%~dp0"
  3. set "SrcFolder=证件"
  4. set "DstFolder=人员"
  5. for /f "tokens=1-2 delims=-" %%a in ('dir /b /a-d "%SrcFolder%"') do (
  6.     for /f "delims=" %%i in ('dir /b /ad "%DstFolder%"') do (
  7.         pushd "%DstFolder%\%%i"
  8.         for /f "delims=" %%j in ('dir /b /ad') do (
  9.             for /f "tokens=1-2 delims=0123456789" %%k in ("%%j") do (
  10.                 if "%%a" equ "%%l" (
  11.                     move /y "%~dp0%SrcFolder%\%%a-%%b" "%~dp0%DstFolder%\%%i\%%j\"
  12.                 )
  13.             )
  14.         )
  15.         popd
  16.     )
  17. )
复制代码
1

评分人数

我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

文件名中“-”前后是否存在空格?

TOP

回复 9# 城外无诚
请你分别tree /f一下“人员”和“收集的人员信息”文件夹,发上来看看;建议将文件夹名中的序号都改为001/002...三位数,可以减少代码的复杂性,处理起来效率也高。

TOP

回复 3# qixiaobin0715


    您好,我试了一下。有两个问题。
    1、文件只是复制到了“人员”文件夹目录下,并没有复制到对应人员的个人文件夹。
    2、其他不含关键字的文件也一并复制过来了。

TOP

回复 5# Batcher


    是的,我现在用的方法就是会有这种情况,名字前两个字一样的话文件会同时复制到两个人的文件夹中。

TOP

回复 4# Batcher


    对,从01开始,最多就到3位数。

TOP

回复 5# Batcher
是的,忽略了。那样的话代码就要复杂一些了。

TOP

回复 3# qixiaobin0715


    张高五、高五,可能有类似这样的两个名字吧。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 1# 城外无诚


    序号的数字个数不固定是吗,有的2位数字,有的是3位数字?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 2# 城外无诚
如果收集的文件在D:\IdInformation中,将下列代码放在“人员”文件夹下:
  1. @echo off
  2. set Folder=D:\IdInformation
  3. copy "%Folder%\*.*" "%~dp0"
  4. for /f "delims=-" %%a in ('dir /b /a-d') do move "%%a-*.*" "*%%a\"
  5. pause
复制代码
1

评分人数

TOP

求大佬帮忙!

TOP

返回列表