按行数批量分割文本文件

时间:2017-06-12 19:30:35

标签: windows batch-file batch-processing

我看了一遍,无法找到一个简单的Windows批处理脚本来按行数拆分文本文件。

我有一个大约150,000行的.txt文件

我试图制作一个每1000行拆分文本文件的批处理。

我也试过使用Gsplit但没有成功

如果您能找到类似的问题,请与我联系

非常感谢。

我认为找到这个问题的答案对谷歌上的其他用户和人有用

1 个答案:

答案 0 :(得分:0)

您只需要一个for循环和一个计数器。

@echo off
setlocal enabledelayedexpansion

:: Ensure that the user passed the file to the script
if "%~1"=="" (
    echo Please provide a file to process. You can drag the file onto the script.
    exit /b
)

set "split_at=1000"
set "input_file_name=%~1"
set "output_file_base_name=%~n1"
set "split_count=1"
set "line_count=1"

:: Move to the directory where the file is
pushd %~dp1

for /f "delims=" %%A in (%input_file_name%) do (
    >>%output_file_base_name%.!split_count! echo(%%A
    set /a line_count+=1

    REM If we've reached the split_number, roll the log over
    if !line_count! gtr %split_at% (
        set line_count=1
        set /a split_count+=1
    )
)

popd