联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!
@echo off ::wangwei QQ251485609 by 20100622 endlocal enabledelayedexpansion title 文件分割 @echo. @echo. 本程序仅限于文本文件分割 echo. echo. 可以将文件按“行”分割成N份。也可以按“字节”分割成N份 @echo. @echo. 注:字节分割是保留整行截取,所以结果大于设定数值。 @echo. set /p file= 输入要处理的文件: for %%i in (%file%) do ( set "jkz=%%~ni" set "jz=%%~nxi" set "jz1=%%~nxi" set /a "size=%%~zi") for /f "tokens=3 delims= " %%i in ('find /v /c "" %file%') do set m=%%i cls @echo. @echo 当前文件共 %m% 行, 长度: 0%size:~0,-3%.%size:~-3,3% kb @echo. set/p hxz= 请选择: 按“行”分割h: 按“字节”分割zj: if %hxz%==h goto hfg if %hxz%==zj goto zjfg :hfg @echo. set/p h= 输入新文件的行数: @echo. @echo 正在运行中... ... for /f "delims=" %%i in ('findstr /n .* %file%') do ( set /a sw=%%i 2>nul set "v=%%i" setlocal enabledelayedexpansion set "v=!v:*:=!" set/a z=!sw!/%h%+1 set/a k=%h%*!z!+1 if !sw! LSS !k! ( echo.!v!>>%jz%_!z!.txt) @echo !z!>tem.txt endlocal ) for /f %%i in (tem.txt) do set z=%%i del tem.txt @echo. @echo 一共分割成了%z%份文件, 分别是: @echo. for /l %%i in (1,1,%z%) do ( set /p= %jz%_%%i.txt <nul ) @echo. @echo. @echo. 文件分割已经完成。 pause>nul goto eof :zjfg cls @echo. @echo 当前文件共 %m% 行, 长度: 0%size:~0,-3%.%size:~-3,3% kb @echo. for %%i in (%file%) do ( set /a c=%%~zi set "jz=%%~nxi" ) echo 文件大小: %c% 字节 @echo. set/p b= 请设定分割后文件字节大小: set /a f=%c%/%b% set d=1 for /f "delims=" %%a in ('findstr /n .* "%file%"') do ( set "var=%%a" setlocal enabledelayedexpansion set var=!var:*:=! for /l %%i in (1,1,%f%) do ( for %%i in (%jz%-%%i.txt) do if %%~zi GEQ %b% set /a d+=1) echo.!var!>>%jz%-!d!.txt endlocal ) goto eof