找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 40621|回复: 8

[文件操作] [已解决]BAT批处理如何将TXT文件分成每5000行一个小文件?

[复制链接]
发表于 2014-3-28 16:07:17 | 显示全部楼层 |阅读模式
本帖最后由 DDDYJQ1 于 2014-3-29 09:42 编辑

请问如何将一个大的TXT文件分成每5000行一个小的TXT文件,最后一个不能超过5000行,先谢了

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2014-3-28 17:10:38 | 显示全部楼层
发表于 2014-3-28 17:19:42 | 显示全部楼层
  1. @echo off & setlocal enabledelayedexpansion
  2. set nname=1
  3. for /f "delims=" %%a in (test.txt) do (
  4.         set /a n+=1
  5.         set /a s=!n!%%5000
  6.         if "!s!"=="0" set /a nname+=1
  7.         echo %%a  >>test!nname!.txt
  8. )
复制代码
发表于 2014-3-28 17:50:53 | 显示全部楼层
回复 3# 522235677


测试了一下这段代码,发现第一个文件总是少一个,没找出原因。。。
发表于 2014-3-28 18:08:46 | 显示全部楼层
本帖最后由 522235677 于 2014-3-28 18:24 编辑

回复 4# xudaweb

  1. @echo off & setlocal enabledelayedexpansion
  2. set nname=1
  3. for /f "delims=" %%a in (test.txt) do (
  4.         if !n! gtr 0 set /a s=!n!%%5000
  5.         if "!s!"=="0" set /a nname+=1
  6.         echo %%a  >>test!nname!.txt
  7.         set /a n+=1
  8. )
复制代码
现在可以了

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

发表于 2014-3-28 20:07:21 | 显示全部楼层
回复 5# 522235677


    这样会导致行尾产生多余的空格吧
 楼主| 发表于 2014-3-28 21:35:21 | 显示全部楼层
对啊,这样会导致行尾产生多余的空格吧,文件变大了
发表于 2014-3-28 22:28:39 | 显示全部楼层
这样效率是否提高点
  1. @echo off & setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in (test.txt) do (
  3.         set /a"n=m/5000,m+=1"
  4.         >>test!n!.txt echo %%a
  5. )
复制代码

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

 楼主| 发表于 2014-3-29 09:43:08 | 显示全部楼层
谢了,就是这样子,太好了,
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-21 02:08 , Processed in 0.029891 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表