使用Windows批处理或可能的其他语言我希望将包含85K +结果的文本文件拆分为单独的文本文件。顶部还有一个标题,需要出现在每个新文本文件中。
我所拥有且可以开始工作的简短但唯一的代码如下:
FIND "" /v /c /n "D:\Users\ashley.fayers\Desktop\M6_040615\M6_040615_B_FULL\M6_040615_B.txt"
这段代码为我提供了文本中的行数,但它也包含了我不需要包含的标题。但我需要将它包含在以后创建的文本文件中。
答案 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