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

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

好比现在一个文件夹下包含多个文件 命名格式分别是2019-01-01 XXX.txt  现在我想取 2019-01-01 到2019-01-15号的txt文件内容到 一个新的txt文件,请大神帮忙~ 在线坐等

有没有人帮忙下 ,谢谢  怎么写 能给批处理代码粘贴下么

TOP

回复 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. )
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 3# Batcher


    如果我这标题格式 不只有日期呢?如2019-01-05  XXXXXXX_part.txt   我这是否可以这样模糊搜索 这一类时间段的文件?

TOP

回复 3# Batcher


    整合的时候能不是一个长串么   都用回车隔开

TOP

  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
复制代码
微信:flashercs
QQ:49908356

TOP

回复 4# yp2121540


    3楼代码无法处理这个情况是吗?请把你的测试用例和测试结果发出来看看,我试试能否重现你的问题。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 7# Batcher


    这个脚本只适用于.txt文件么  .sql文件不适合么?

TOP

回复 6# flashercs


   
    这个脚本只适用于.txt文件么  .sql文件不适合么?

TOP

已经解决 谢谢大家

TOP

返回列表