可以将几万几十万条的文本或者execl等文本数据按你的需求切割并分别保存。但是注意数据需要每行一个排列。
@echo off setlocal enabledelayedexpansion color df mode con: cols=60 lines=20 :memu ::设置变量 set xian=---------------------------- set path1= set path2= set number=0 title ##文本分割## %date% %time% ::要分割的文件路径 echo\ echo #=====================##功能##======================# echo # # echo # 将一个文本平均分割成若干份 # echo # # echo # 可设置每份文本分割后的行数 # echo # # echo # (行数为2-10000) # echo # # echo #==================##直接拖入即可##=================# echo\ set /p path1=要分割的文本路径(必须为文本类): echo\ ::获取文件名 for %%i in (%path1%) do ( set path3=%%~nxi ) ::修正路径,以免出错 for %%i in (%path1%) do ( set path1=%%~fsi ) ::判断%path1%是否为空值,真则跳转到开始 if "%path1%"=="" ( cls echo 要分割的文本路径,不能为空。 echo %xian% goto memu) ::要保存的目标路径 set /p path2=要保存的目标路径(目录/文件夹): echo\ ::修正路径,以免出错 for %%i in (%path2%) do ( set path2=%%~fsi ) ::判断%path2%是否为空值,真则跳转到开始 if "%path2%"=="" ( cls echo 要保存的目标路径,不能为空。 echo %xian% goto memu) ::每段要分割的行数 set /p number=每段要分割的行数(2-10000): echo\ ::判断%number%是否正确,否则跳转到开始 for /l %%i in (2,1,10000) do ( if %number% equ %%i+7 ( goto str ) ) cls echo 每段要分割的行数,不正确。 echo %xian% goto memu :str cls ::设置变量 ::----------------- ::判断文件名 set filenames=0 ::判断行数 set numbers=0 ::文件名 set filename=1 for /l %%b in (1,1,7) do echo\ echo\ echo 正在处理,这可能需要一段时间,请稍后... ::判断路径是否为真 if not exist %path1% ( cls echo 要分割的文本路径,未找到。 echo %xian% goto memu) if not exist %path2% ( cls echo 要保存的目标路径,未找到。 echo %xian% goto memu) ::开始处理 for /f "delims=" %%a in (%path1%) do ( set /a numbers+=1 set /a filenames+=1 echo %%a>>%path2%\!filename!.csv if !numbers! geq !number! ( set /a filename+=1 set numbers=0 ) ) ::结束 cls echo\ echo 文件 【%path3%】共%filenames%行. echo\ echo 分割为%filename%段,每段%number%行. echo\ echo 保存在%path2%. for /l %%b in (1,1,7) do echo\ echo\ echo 任务已完成,按任意键退出 start %path2% >nul 2>nul pause>nul&exit