[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

本帖最后由 DDDYJQ1 于 2014-3-29 09:42 编辑

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

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

  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. )
复制代码

TOP

回复 3# 522235677


测试了一下这段代码,发现第一个文件总是少一个,没找出原因。。。
学习...

TOP

本帖最后由 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

评分人数

TOP

回复 5# 522235677


    这样会导致行尾产生多余的空格吧

TOP

对啊,这样会导致行尾产生多余的空格吧,文件变大了

TOP

这样效率是否提高点
  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

评分人数

TOP

谢了,就是这样子,太好了,

TOP

返回列表