找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 17688|回复: 6

[文件操作] 【已解决】批处理怎样获取文件字段后按此字段值归类移动?

[复制链接]
发表于 2023-2-15 20:42:10 | 显示全部楼层 |阅读模式
本帖最后由 304802301 于 2023-2-16 19:52 编辑

各位大佬:

1、我这里有一个文件夹名字叫“零散文件夹”,里面有很多文件夹,每个文件夹里面有1个文件(格式不定,但都可以用txt方式打开),每个文件里面都有一个字段Code="X" ,里面的X为值,值是不定的,字段出现的位置也不定,但一定会有这个字段和值。具体如下:
零散文件夹\1\efec.tf【文件里面的Code="A3400121" 】
零散文件夹\2\adqw.qwaa【文件里面的Code="Aasqw00121"】
零散文件夹\3\awdkqw.qwqw【文件里面的Code="Aaqwqww00121"】
零散文件夹\4\102102.1212aw【文件里面的Code="Aaqwqww00121"】
零散文件夹\5\102-0oaposkd.12adsd【文件里面的Code="Aaqwqww00121" 】
零散文件夹\6\qweqw-asdawq-asdas.asdqw【文件里面的Code="Aaqwqww00121"】
零散文件夹\7\99101-212w12.asdwwwwww【文件里面的Code="Aaqwqws00121"】
零散文件夹\8\qwaoiwjd.090【文件里面的Code="Aaqwqws00121"】
零散文件夹\9\oo000l00s.s【文件里面的Code="Aaaqws00121"】
零散文件夹\10\0apskdal.sadwqqqqqqw【文件里面的Code="Aaaqws00121"】

2、另外还有一个文件夹名字叫“目标文件夹”,需要按要求把“零散文件夹”里面的文件夹+文件移动到“目标文件夹”
3、我的要求是执行这个bat后,读取每个文件里面的Code字段和值(比如Code="A3400121"),在“目标文件夹”里面新建一个文件夹,名字就是这个Code值(A3400121),并把相同Code值的文件连同其父文件夹一同移动到这个文件夹里面来。
4、移动后的效果如下:
============================================
目标文件夹\A3400121\1\efec.tf
=============================================
目标文件夹\Aasqw00121\2\adqw.qwaa
==============================================
目标文件夹\Aaqwqww00121\3\awdkqw.qwqw
目标文件夹\Aaqwqww00121\4\102102.1212aw
目标文件夹\Aaqwqww00121\5\102-0oaposkd.12adsd
目标文件夹\Aaqwqww00121\6\qweqw-asdawq-asdas.asdqw

==============================================
目标文件夹\Aaqwqws00121\7\99101-212w12.asdwwwwww
目标文件夹\Aaqwqws00121\8\qwaoiwjd.090

===============================================
目标文件夹\Aaaqws00121\9\oo000l00s.s
目标文件夹\Aaaqws00121\10\0apskdal.sadwqqqqqqw

==============================================
注意:上述文件中有部分文件的code值是一样的,需要归类在一起。
实例文件在百度网盘上,链接:https://pan.baidu.com/s/15YBw-bIBL07zAob3fLSMmg 提取码:nfsf

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2023-2-15 20:55:03 | 显示全部楼层
用vbs啊 简单易懂
 楼主| 发表于 2023-2-15 21:38:55 | 显示全部楼层
回复 2# jyswjjgdwtdtj


    不太会啊
发表于 2023-2-16 11:36:19 | 显示全部楼层
这个提取哪段?还是不提取
Tender="浙Code="Aaaqws00121"司" Under="" Projer="芬" Prode="33224"  Pre="浙公司" Proy="10" Qro="按求" Coe="93A" UCode=""...
 楼主| 发表于 2023-2-16 14:08:39 | 显示全部楼层
回复 4# terse


    提取Code="Aaaqws00121",双引号之间的值Aaaqws00121
发表于 2023-2-16 15:03:44 | 显示全部楼层
  1. <# :
  2. @echo off
  3. powershell -NoProfile -ExecutionPolicy bypass "Get-Content -literal '%~f0' |Out-String|Invoke-Expression"
  4. echo 已完成!&pause
  5. #>
  6. dir .\零散文件夹\|?{$_ -is [System.IO.DirectoryInfo]}|%{$d=$_.name;$n=$_.FullName;[IO.File]::ReadAllText((dir $_.FullName)[0].fullName) -match '(?<!U)Code="(.*?)"';$code=$Matches[1];if(Test-Path 目标文件夹/$code){}else{md 目标文件夹/$code};move $_.FullName 目标文件夹/$code}
复制代码

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

 楼主| 发表于 2023-2-16 19:51:51 | 显示全部楼层
回复 6# pd1


    可以使用,感谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 05:13 , Processed in 0.021156 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表