批处理切割大文本数据

可以将几万几十万条的文本或者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

给TA打赏
共{{data.count}}人
人已打赏
技术文档

vcf转csv批处理

2017-8-5 0:32:54

技术文档

某段\x16进制和unicode加密与混淆js代码的解密与反加密

2017-9-23 22:26:20

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
有新私信 私信列表
搜索