————————————————————————
@echo off&color a&setlocal enabledelayedexpansion
::因使用了延迟变量而舍弃了感叹号!!在使用之前先把感叹号转换为其他字符。
::原文件空白行也可以输出 注意:只能分割大文件。
for /f %%i in ('type test.txt^|find /v /c ""') do set num=%%i
:start
cls&echo.
set /p "x= 请输要分成的份数:"
set "errorlevel="
set /a y=%num%/%x%
if errorlevel 2 goto start
echo.正在进行文件分割,请稍候...
set fs=1
for /f "tokens=1* delims=:" %%i in ('findstr /n "." test.txt') do (
set /a n+=1
set /a w=!fs!*%y%+1
if %%i gtr !n! call :loop %%i
echo.%%j>>"test!fs!.txt"
if !n! gtr !w! set /a fs+=1
)
echo.文件分割完毕,按任意键退出。&pause>nul
exit
:loop
echo.>>"test%fs%.txt"
set /a n+=1
if %1 gtr %n% goto loop
goto :eof
————————————————————————————