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

[文本处理] 求助批处理copy合并指定的时间段txt文件到一个txt里

[复制链接]
发表于 2019-8-1 14:34:44 | 显示全部楼层 |阅读模式
好比现在一个文件夹下包含多个文件 命名格式分别是2019-01-01 XXX.txt  现在我想取 2019-01-01 到2019-01-15号的txt文件内容到 一个新的txt文件,请大神帮忙~ 在线坐等
 楼主| 发表于 2019-8-1 14:35:20 | 显示全部楼层
有没有人帮忙下 ,谢谢  怎么写 能给批处理代码粘贴下么
发表于 2019-8-1 20:52:35 | 显示全部楼层
回复 1# yp2121540
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. REM 设置开始日期
  4. set start=2019-01-01
  5. REM 设置结束日期
  6. set end=2019-01-15
  7. set /a sy=%start:~,4%,sm=1%start:~5,2%%%100,sd=1%start:~8,2%%%100,ey=%end:~,4%,em=1%end:~5,2%%%100,ed=1%end:~8,2%%%100,a=31
  8. for %%a in (1 3 5 7 8 10 12 4 6 9 11) do (
  9.     if %%a equ 4 set /a a-=1
  10.     set /a _%%a=a
  11. )
  12. (for /l %%a in (%sy%,1,%ey%) do (
  13.     set /a "_2=^!(%%a%%4)&^!(^!(%%a%%100))|^!(%%a%%400)+28"
  14.     set /a a=1,b=12
  15.     if "%%a" equ "%sy%" set /a a=sm
  16.     if "%%a" equ "%ey%" set /a b=em
  17.     for /l %%b in (!a!,1,!b!) do (
  18.         set /a c=1,d=_%%b
  19.         if "%%a%%b" equ "%sy%%sm%" set /a c=sd
  20.         if "%%a%%b" equ "%ey%%em%" set /a d=ed
  21.         for /l %%c in (!c!,1,!d!) do (
  22.             for %%d in (%%b %%c) do set ".%%d=0%%d"&set ".%%d=!.%%d:~-2!"
  23.             echo %%a-!.%%b!-!.%%c!
  24.         )
  25.     )
  26. ))>"%temp%\DateList.txt"

  27. type nul >"结果.txt"
  28. for /f %%a in ('type "%temp%\DateList.txt"') do (
  29.     if exist "%%a*.txt" (
  30.         type "%%a*.txt" >>"结果.txt"
  31.     )
  32. )
复制代码
 楼主| 发表于 2019-8-2 09:43:16 | 显示全部楼层
回复 3# Batcher


    如果我这标题格式 不只有日期呢?如2019-01-05  XXXXXXX_part.txt   我这是否可以这样模糊搜索 这一类时间段的文件?
 楼主| 发表于 2019-8-2 11:09:22 | 显示全部楼层
回复 3# Batcher


    整合的时候能不是一个长串么   都用回车隔开
发表于 2019-8-2 12:55:15 | 显示全部楼层
  1. @echo off
  2. set "searchdir=."
  3. set "searchpattern=????-??-?? *.txt"
  4. set "newfile=.\new.txt"
  5. set startdate=2019-01-01
  6. set enddate=2019-01-15

  7. cd . >"%newfile%"
  8. for /f "delims=" %%A in ('where "%searchdir%:%searchpattern%"') do (
  9.   for /f "tokens=1" %%B in ("%%~nxA") do (
  10.     if %%B geq %startdate% (
  11.         if %%B leq %enddate% (
  12.           REM echo %%A
  13.           copy /y /b "%newfile%"+"%%A"
  14.           echo.>>"%newfile%"
  15.         )
  16.       )
  17.   )
  18. )
  19. pause
  20. exit /b
复制代码
发表于 2019-8-2 14:32:28 | 显示全部楼层
回复 4# yp2121540


    3楼代码无法处理这个情况是吗?请把你的测试用例和测试结果发出来看看,我试试能否重现你的问题。
 楼主| 发表于 2019-8-2 16:53:50 | 显示全部楼层
回复 7# Batcher


    这个脚本只适用于.txt文件么  .sql文件不适合么?
 楼主| 发表于 2019-8-2 16:54:18 | 显示全部楼层
回复 6# flashercs


   
    这个脚本只适用于.txt文件么  .sql文件不适合么?
 楼主| 发表于 2019-8-2 17:07:07 | 显示全部楼层
已经解决 谢谢大家
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-19 06:18 , Processed in 0.009766 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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