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

[文本处理] 疫情统计数据求助批处理按照关键字分割文件

[复制链接]
发表于 2022-2-7 17:49:25 | 显示全部楼层 |阅读模式
还是先祝大家新年好。
       先吐槽一下这些烂工作。该死的疫情,别说休假了,简直糟心!一堆数据乱七八糟,其他人交过来的数据格式不一,好不容易搞成统一风格。结果大年初一下面县区从深圳跑回来的一家人确诊了,搞的所有吃财政的又抓回去值班,一家家看回来的有没有风险接触,有没有偷跑的。说真的,抓敌特都没这么紧张,该死的疫情!!!搞完这波统计我再也不干了!
       好吧回到正题,先谢谢之前论坛网友flashercs,idwma的帮忙解决一个大问题。现在怎算有能拿的出手的数据了,但还有个小麻烦:
经过大佬们的帮忙,几个村的数据看起来整齐通透多了,数据如下。
负责人 XXX
工作人员 XX  XX  XX
志愿者 XX  XX  XX  XX
单号 红星村-001 XXX 地址 XXXXXXXXXX
单号 榕树镇-001 XXX 地址 XXXXXXXXXX
单号 吉安村-001 XXX 地址 XXXXXXXXXX
单号 红星村-002 XXX 地址 XXXXXXXXXX
单号 红星村-003 XXX 地址 XXXXXXXXXX
单号 榕树镇-002 XXX 地址 XXXXXXXXXX
单号 吉安村-002 XXX 地址 XXXXXXXXXX
单号 红星村-004 XXX 地址 XXXXXXXXXX
单号 榕树镇-003 XXX 地址 XXXXXXXXXX
单号 吉安村-003 XXX 地址 XXXXXXXXXX
单号 红星村-005 XXX 地址 XXXXXXXXXX
单号 红星村-006 XXX 地址 XXXXXXXXXX
单号 榕树镇-004 XXX 地址 XXXXXXXXXX

大概有5000多人的数据分别在几十个txt文件下。
我希望能用bat把每个村名的部分都变成单一的txt文档如:
红星村.txt   榕树镇.txt  吉安村.txt  XXX村.txt

比如红星村.txt的内容如下。以此类推。
--------------------------------------------
负责人 XXX
工作人员 XX  XX  XX
志愿者 XX  XX  XX  XX
单号 红星村-001 XXX 地址 XXXXXXXXXX
单号 红星村-002 XXX 地址 XXXXXXXXXX
单号 红星村-003 XXX 地址 XXXXXXXXXX
单号 红星村-004 XXX 地址 XXXXXXXXXX
单号 红星村-005 XXX 地址 XXXXXXXXXX
.........
发表于 2022-2-7 18:29:36 | 显示全部楼层
本帖最后由 idwma 于 2022-2-7 19:33 编辑

抗疫幸苦了安全第一,先备份文件呀
  1. #@&cls&powershell "type %~s0|out-string|iex"&pause&exit
  2. dir *.txt|%{
  3. $a=@{}
  4. $b=@()
  5. foreach($i in gc $_){if($i -match '..村|..镇'){$a[$matches[0]]+=@($i)}else{$b+=$i}}
  6. foreach($i in $a.keys){if(test-path $($i+'.txt')){ac $($i+'.txt') $a[$i]}else{ac $($i+'.txt') $($b,$a[$i])}}
  7. }
复制代码

评分

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

查看全部评分

 楼主| 发表于 2022-2-7 18:58:10 | 显示全部楼层
回复 2# idwma

无法对 Null 数组进行索引。
所在位置 行:5 字符: 68
+ ... 0 $_.fullname){if($i -match '..村|..镇'){$a[$matches[0]]+=@($i)}else{$b ...
+                                            ~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: ( [],RuntimeException
    + FullyQualifiedErrorId : NullArray

无法对 Null 数组进行索引。
所在位置 行:5 字符: 68
+ ... 0 $_.fullname){if($i -match '..村|..镇'){$a[$matches[0]]+=@($i)}else{$b ...
+                                            ~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [],RuntimeException
    + FullyQualifiedErrorId : NullArray

请按任意键继续. . .

不知为何保存bat运行错误?
发表于 2022-2-7 19:32:12 | 显示全部楼层
回复 3# myacg


    改了
 楼主| 发表于 2022-2-7 20:16:23 | 显示全部楼层
回复 4# idwma
可用,谢谢大佬,我可以提早收工了。谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-20 11:24 , Processed in 0.018266 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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