请教大神,用bat怎么处理?

有个5000行的txt文件,文件开头两行固定是aaa和bbb,现在想分成5个1000行的文件,每个文件开头还是aaa和bbb,... 有个5000行的txt文件,文件开头两行固定是aaa和bbb,现在想分成5个1000行的文件,每个文件开头还是aaa和bbb, 展开
 我来答
albumin
2016-12-20 · TA获得超过1.2万个赞
知道大有可为答主
回答量:4889
采纳率:87%
帮助的人:2368万
展开全部
@echo off&setlocal enabledelayedexpansion
set n=0
set m=0
set "file=5000"
for /f "delims=" %%a in (%file%.txt) do (
if !m! equ 0 set "start=%%~a"
set !m! equ 1 set "second=%%~a"
set /a m+=1
if !m! gtr 1 goto :next
)
:next 
set m=0
for /f "skip=2 delims=" %%a in (%file%.txt) do (
if !m! equ 0 (
set /a n+=1
 echo.%start% >> %file%!n!.txt
echo.%second% >> %file%!n!.txt 

echo.%%a >> %file%!n!.txt
set /a m=m+1
set /a m%%=1000
)

假设txt文件名为5000.txt ,set "file=5000"这句中5000为原txt文件的主文件名,

微测检测5.10
2023-05-10 广告
您好!建议咨 深圳市微测检测有限公司,已建立起十余个专业实验室,企业通过微测检测就可以获得一站式的测试与认 证解决方案;(EMC、RF、MFi、BQB、QI、USB、安全、锂电池、快充、汽车电子EMC、汽车手机互 联、语音通话质量),认证遇... 点击进入详情页
本回答由微测检测5.10提供
乱世t逃犯
2016-12-19 · TA获得超过2780个赞
知道小有建树答主
回答量:1016
采纳率:75%
帮助的人:433万
展开全部
@echo off
setlocal enabledelayedexpansion
set cols=1000
md test
md result
echo aaa>>test\temp.txt
echo bbb>>test\temp.txt
set name=1
for /f "delims=" %%a in (A.txt) do (
  set /a n+=1
  echo %%a>>test\!name!.txt 
  if !n! equ %cols% ( copy /b test\temp.txt + test\!name!.txt result\new!name!.txt>nul & set /a name+=1,n=0 )
)
 rd /s /q test
echo 处理完毕 & pause>nul
start result & exit

——————————————————


以上代码中

cols=1000 ,是以1000行分割文本,如果加上aaa和bbb那两行,文本就是1002行。所以有必要的话,数字1000改为998。

A.txt 表示需要分割的文档,具体运用时,注意把A改为你需要分割的文本文件名。

over.

追问
大神,更进一步追问一下呀,这个aaa再具体细化一下。因为原来的文件已经有aaa和bbb了,所以分割的第一个文件不需要加,从第二个文件才需要加,而且aaa具体包含3个字段第一个字段是aaa固定不变的+第二个字段是序号每个文件递增+第三个字段是每个文件的行数。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式