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

[文本处理] [已解决]求助批处理如何提取文本内指定的 日期时段

a.txt  文本内容
2024/10/01 17:01,19972.00,19986.00,19968.25,19978.00,764,
2024/10/01 17:02,19978.75,19981.75,19968.25,19968.25,401,
2024/10/01 17:03,19969.25,19969.75,19945.25,19952.50,861,
2024/10/01 17:04,19953.50,19955.00,19949.25,19950.25,287,
.
.

2024/10/02 15:55,20066.00,20068.75,20066.00,20067.00,87,
2024/10/02 15:56,20067.00,20069.00,20066.50,20067.50,178,
2024/10/02 15:57,20067.50,20068.75,20065.25,20067.75,153,
2024/10/02 15:58,20067.25,20068.00,20066.00,20066.00,80,
2024/10/02 15:59,20065.75,20065.75,20060.25,20060.75,251,
2024/10/02 16:00,20060.50,20060.50,20056.25,20059.25,348,
文本中 第一列为 日期 时间,
每一分钟一行
起始时间为17:01
终止时间为次日 16:00

提取至b.txt
谢谢
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

回复 1# KLL
  1. @echo off &setlocal &set "g=1"
  2. (for /f "tokens=1-2 delims=, " %%a in ('sort a.txt') do if defined g (
  3. if "%%b"=="17:01" (set "gg=1") else if "%%b"=="16:00" set "g="
  4. if defined gg echo,%%a %%b
  5. ))>b.txt
  6. endlocal&pause&exit/b
复制代码

TOP

已运行测试    正确

感谢协助   谢谢您

TOP

  1. @echo off
  2. set d1=2024/10/01
  3. cd /d "%~dp0"
  4. for /f %%a in ('powershell -c "Get-Date (Get-Date '%d1%').AddDays(1) -uformat "%%Y/%%m/%%d""') do (
  5. set d2=%%a
  6. )
  7. (for /f "tokens=1* delims=," %%a in ('findstr /b "%d1% %d2%" "a.txt"') do (
  8. if "%%a" geq "%d1% 17:01" (
  9. if "%%a" leq "%d2% 16:00" (
  10. echo %%a,%%b
  11. )
  12. )
  13. )) > "b.txt"
  14. pause
复制代码
1

评分人数

    • KLL: 乐于助人技术 + 1
bat小白,请多指教!谢谢!

TOP

17:01 至次日 16:00  的行

这不就是全部的文件内容么?

QQ 20147578

TOP

回复 2# 77七
提取指定日期   起始时间为17:01 至次日 16:00  的行

TOP

提取什么?没说清楚
bat小白,请多指教!谢谢!

TOP

返回列表