Batch file to delete first 3 lines of a text file

后端 未结 5 1770
广开言路
广开言路 2020-11-28 14:06

As the title states I need a batch file to delete the FIRST 3 lines of a text file.

for example:

A    
B    
C    
D    
E   
F    
G
5条回答
  •  南方客
    南方客 (楼主)
    2020-11-28 14:31

    If you want to skip the first and tail the last lines, you can use my code at http://www.harchut.de/download/ms-dos/skip-tail-flatfile-example.zip

    set L_TRIMFILE_CNT=0
    set L_TRIMFILE_TMPFILE=work.countrows.find.tmp
    find /c /v "" %P_TRIMFILE_INFILE% > %L_TRIMFILE_TMPFILE%
    for /f "skip=1 tokens=3* " %%a in (%L_TRIMFILE_TMPFILE%) do (
      if %L_TRIMFILE_CNT% == 0 set L_TRIMFILE_CNT=%%a
    )
    del %L_TRIMFILE_TMPFILE%
    set /a L_TRIMFILE_EOF=%L_TRIMFILE_CNT%-%P_TRIMFILE_TAIL%
    findstr /n .* "%P_TRIMFILE_INFILE%" > %L_TRIMFILE_TMPFILE%
    if exist %P_TRIMFILE_OUTFILE% del %P_TRIMFILE_OUTFILE%
    set V_TRIMFILE_SKIP="skip=%P_TRIMFILE_SKIP% tokens=1* delims=:"
    if %P_TRIMFILE_SKIP% equ 0 set V_TRIMFILE_SKIP="tokens=1* delims=:"
    for /f %V_TRIMFILE_SKIP% %%a in (%L_TRIMFILE_TMPFILE%) do (
      if %%a leq %L_TRIMFILE_EOF% if exist %P_TRIMFILE_OUTFILE% @echo.%%b>>%P_TRIMFILE_OUTFILE%
      if %%a leq %L_TRIMFILE_EOF% if not exist %P_TRIMFILE_OUTFILE% @echo.%%b>%P_TRIMFILE_OUTFILE%
    )
    del %L_TRIMFILE_TMPFILE%
    

    You can skip or tail line of a flatfile without any additional utility.

提交回复
热议问题