Board logo

标题: [文本处理] 如何将一个csv文件里的内容根据每行中的日期时间按不同时间段输出到多个不同csv文件里 [打印本页]

作者: lhxlxy    时间: 2016-10-14 21:19     标题: 如何将一个csv文件里的内容根据每行中的日期时间按不同时间段输出到多个不同csv文件里

本帖最后由 pcl_test 于 2016-10-14 23:23 编辑

整理数据中有个CSV数据包含一整天的数据,现在要把它分成3个新的CSV文件 。按照时间(0点到7点,7点到19点,19点到0点 )进行分  应该怎么处理?
CSV中数据格式大概如下
VER,0,1,PCID,0,8,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,OK,,,DATE,TIME,,,,,,
VER,0,1,PCID,0,8,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,OK,,,20161013,00:01:00,,,,,,
作者: sishentibu    时间: 2016-10-14 21:54

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. cd /d %~dp0
  4. echo.>1-1.csv
  5. echo.>1-2.csv
  6. echo.>1-3.csv
  7. for /f "tokens=1,* delims=:" %%i in (1.csv) do (
  8. set t=%%i
  9. set t1=!t:~-2!
  10. if "!t1!" leq "07" (
  11. echo !t!:%%j>>1-1.csv
  12. ) else if "!t1!" leq "19" (
  13. echo !t!:%%j>>1-2.csv) else if "!t1!" leq "24" echo !t!:%%j>>1-3.csv
  14. )
  15. pause
复制代码
写的有点繁琐
作者: pcl_test    时间: 2016-10-15 00:03

http://www.bathome.net/viewthread.php?tid=3328
http://www.bathome.net/thread-2189-1-1.html
  1. @echo off&setlocal enabledelayedexpansion
  2. set csv="测试.csv"
  3. echo;>>%csv%
  4. set d=20161013
  5. for %%a in ("%d%,0[0-6]:" "%d%,0[7-9]: %d%,1[0-8]:" "%d%,19: %d%,2[0-3]:") do (
  6.     set /a n+=1
  7.     findstr %%a %csv%>"$!n!.csv"
  8. )
  9. pause
复制代码





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