Board logo

标题: [文本处理] 求助BAT脚本批量处理某个文件夹内的csv文件 [打印本页]

作者: 13375773396    时间: 2021-9-8 09:07     标题: 求助BAT脚本批量处理某个文件夹内的csv文件

本帖最后由 13375773396 于 2021-9-8 15:36 编辑

能否帮助实现批量处理某个文件夹内的csv文件,稍微有点复杂。
源文件 内容为   第一行 分别为

己方号码        己方卡号        己方机身码        截获时间*        呼叫类型*        对方号码        时长        己方位置区        对方手机归属地        己方小区       
需要将原数据每一列进行剪切调换位置并对 截获时间* 数据列分列成两列数据分别重新命名为呼叫日期  呼叫时间
己方号码        己方卡号        己方机身码        己方位置区        己方小区        小区名称        呼叫日期        呼叫时间        对方号码        时长        呼叫类型

能否帮助写个代码,万分感谢。

源文件和输出文件已上传至云盘 链接: https://pan.baidu.com/s/1xOMq0yFPd3dFOq_wKwNCEA 提取码: upba
作者: Batcher    时间: 2021-9-8 10:10

回复 1# 13375773396


    请给出几行真实数据以便更好的说明需求,敏感信息请注意脱敏。
作者: 13375773396    时间: 2021-9-8 11:25

源数据
  己方号码        己方卡号        己方机身码        截获时间*        呼叫类型*        对方号码        时长        己方位置区        对方手机归属地        己方小区        己方基站名称
"13000000000        "        "400000000000000        "        "0000000000        "        "2010-01-01 12:00:00        "        "主叫        "        "13011111111        "        "20        "        "50000        "        "        "        "5000        "        "        "   

输出数据
己方号码        己方卡号        己方机身码        己方位置区        己方小区        小区名称        呼叫日期        呼叫时间        对方号码        时长        呼叫类型
"13000000000        "        "400000000000000        "        "0000000000        "        "50000        "        "5000        "                2010-01-01        12:00:00        "13000000000        "        "20        "        "主叫        "


大致的数据内容就是这样子的
作者: 13375773396    时间: 2021-9-8 11:26

回复 2# Batcher


    源数据
  己方号码        己方卡号        己方机身码        截获时间*        呼叫类型*        对方号码        时长        己方位置区        对方手机归属地        己方小区        己方基站名称
"13000000000        "        "400000000000000        "        "0000000000        "        "2010-01-01 12:00:00        "        "主叫        "        "13011111111        "        "20        "        "50000        "        "        "        "5000        "        "        "   

输出数据
己方号码        己方卡号        己方机身码        己方位置区        己方小区        小区名称        呼叫日期        呼叫时间        对方号码        时长        呼叫类型
"13000000000        "        "400000000000000        "        "0000000000        "        "50000        "        "5000        "                2010-01-01        12:00:00        "13000000000        "        "20        "        "主叫        "


大致的数据内容就是这样子的
作者: Batcher    时间: 2021-9-8 11:38

回复 4# 13375773396


    网页可能导致文本格式的变化,请把csv上传到阿里云盘或百度网盘。
作者: qixiaobin0715    时间: 2021-9-8 11:55

回复 4# 13375773396
你可以把其中一个CSV文件用记事本打开,复制部分内容,再贴出来也可。
作者: 13375773396    时间: 2021-9-8 15:25

回复 6# qixiaobin0715

链接: https://pan.baidu.com/s/1xOMq0yFPd3dFOq_wKwNCEA 提取码: upba 复制这段内容后打开百度网盘手机App,操作更方便哦




    已上传云盘,能否帮助解决下。O(∩_∩)O谢谢
作者: 13375773396    时间: 2021-9-8 15:25

回复 5# Batcher


    链接: https://pan.baidu.com/s/1xOMq0yFPd3dFOq_wKwNCEA 提取码: upba 复制这段内容后打开百度网盘手机App,操作更方便哦




    已上传云盘,能否帮助解决下。O(∩_∩)O谢谢
作者: qixiaobin0715    时间: 2021-9-8 16:29

对方手机归属地
小区名称
这2个名称对应不上?
作者: 13375773396    时间: 2021-9-9 16:49

回复 9# qixiaobin0715


    对方归属地可以不提取
作者: qixiaobin0715    时间: 2021-9-9 21:33

本帖最后由 qixiaobin0715 于 2021-9-10 05:55 编辑

回复 10# 13375773396
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for %%k in (*.csv) do (
  4.     (for /f "tokens=1-10 delims=," %%a in ('type "%%k"') do (
  5.         set "str=%%~d"
  6.         set "str=!str:截获时间*=呼叫日期 呼叫时间!"
  7.         for /f "tokens=1,2" %%x in ("!str!") do set "str1=%%x,%%y"
  8.         set "str2=%%e"
  9.         set "str2=!str2:呼叫类型*=呼叫类型!"
  10.         echo,%%a,%%b,%%c,%%h,%%j,%%i,!str1!,%%f,%%g,!str2!
  11.     ))>"new_%%k"
  12. )
  13. pause
复制代码

作者: 13375773396    时间: 2021-9-10 10:38

回复 11# qixiaobin0715


    谢谢回复,刚试了下代码,第一行名称还没有实现完美

能否帮助完美实现下,
源数据
第一行  为
己方号码        己方卡号        己方机身码        截获时间*        呼叫类型*        对方号码        时长        己方位置区        对方手机归属地        己方小区        己方基站名称        对方手机归属地*        己方通话地*        对方通话地*        对方通话地        手机归属地*        交换机号        第三方号码        运营商*        手机归属地
希望输出数据的第一行  为
己方号码        己方卡号        己方机身码        己方位置区        己方小区        小区名称        呼叫日期        呼叫时间        对方号码        时长        呼叫类型        己方归属地        己方归属地名称        对方归属地        对方归属地名称        己方通话地        己方通话地名称        前位置区        前小区

其中小区名称列   以及  己方归属地        己方归属地名称        对方归属地        对方归属地名称        己方通话地        己方通话地名称        前位置区        前小区  可以数据为空

目前转后的第一行为
己方号码        己方卡号        己方机身码        己方位置区        己方小区        对方手机归属地        截获时间*                对方号码        时长        呼叫类型*

缺少的是小区名称列  呼叫日期        呼叫时间 呼叫类型  

不知道为什么改名称没有实现出来
作者: qixiaobin0715    时间: 2021-9-10 11:40

回复 12# 13375773396
太乱了!
源数据中:对方手机归属地、对方通话地、手机归属地都出现两次;
输出数据:好多是源数据中没有的名称。不知如何与源数据中对应?




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2