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

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

还是先祝大家新年好。
       先吐槽一下这些烂工作。该死的疫情,别说休假了,简直糟心!一堆数据乱七八糟,其他人交过来的数据格式不一,好不容易搞成统一风格。结果大年初一下面县区从深圳跑回来的一家人确诊了,搞的所有吃财政的又抓回去值班,一家家看回来的有没有风险接触,有没有偷跑的。说真的,抓敌特都没这么紧张,该死的疫情!!!搞完这波统计我再也不干了!
       好吧回到正题,先谢谢之前论坛网友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
.........

回复 4# idwma
可用,谢谢大佬,我可以提早收工了。谢谢

TOP

回复 3# myacg


    改了

TOP

回复 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运行错误?

TOP

本帖最后由 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

评分人数

TOP

返回列表