计算文本文件中的行数;使用结果将文本文件拆分为多个部分

时间:2015-06-19 14:28:19

标签: batch-file

使用Windows批处理或可能的其他语言我希望将包含85K +结果的文本文件拆分为单独的文本文件。顶部还有一个标题,需要出现在每个新文本文件中。

我所拥有且可以开始工作的简短但唯一的代码如下:

FIND "" /v /c /n "D:\Users\ashley.fayers\Desktop\M6_040615\M6_040615_B_FULL\M6_040615_B.txt"

这段代码为我提供了文本中的行数,但它也包含了我不需要包含的标题。但我需要将它包含在以后创建的文本文件中。

1 个答案:

答案 0 :(得分:2)

编辑添加的标题行数

@echo off
setlocal EnableDelayedExpansion

set "theFile=D:\Users\ashley.fayers\Desktop\M6_040615\M6_040615_B_FULL\M6_040615_B.txt"
set headerLines=25

for /F %%a in ('find /C /V "" ^< "%theFile%"') do set /A totalLines=%%a-headerLines
call :SplitFile < "%theFile%"
goto :EOF


rem Split the file in parts 10,000 lines each

:SplitFile

for /L %%i in (1,1,%headerLines%) do set /P header[%%i]=
set /A part=0, numLines=10000

:nextPart
   set /A part+=1
   if %totalLines% lss %numLines% set numLines=%totalLines%
   (
      for /L %%i in (1,1,%headerLines%) do echo(!header[%%i]!
      for /L %%i in (1,1,%numLines%) do (
         set "line="
         set /P line=
         echo(!line!
      )
   ) > Part%part%.txt
   set /A totalLines-=numLines
if %totalLines% gtr 0 goto nextPart
exit /B