Board logo

标题: [文本处理] [已解决]批处理如何按指定行数将一个文本分割成多个小文本? [打印本页]

作者: lijinpengying    时间: 2013-4-25 17:17     标题: [已解决]批处理如何按指定行数将一个文本分割成多个小文本?

本帖最后由 pcl_test 于 2016-10-12 15:21 编辑

因为工作的原因,以前酷爱的bat批处理已经被我忘得差不多了。今天突然想用它来做一件事,竟然发现无从下手了!所以来向各位大大救助!
是这样子的,我有一个文本,里面用一百多行的网址,我用批处理一下子打开的话会卡死,所以我相把里面的网址每5行提取成一个文本,方便我批量打开它们。
例:
a.txt内容格式如下:
http://www.baidu.com?&123dioc.com?/
http://www.baidu.com?&123dioc.com?/
http://www.baidu.com?&123dioc.com?/
http://www.baidu.com?&123dioc.com?/
……
……
……
http://www.baidu.com?&123dioc.com?/
http://www.baidu.com?&123dioc.com?/
http://www.baidu.com?&123dioc.com?/
http://www.baidu.com?&123dioc.com?/
http://www.baidu.com?&123dioc.com?/
等一百多行,我相每五行就提成一个文本保存,希望各位指点一下!
作者: CrLf    时间: 2013-4-25 17:29

本帖最后由 CrLf 于 2013-4-25 18:45 编辑
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in (网址.txt) do (
  3.    set /a n=m/5,m+=1
  4.    (
  5.       setlocal disabledelayedexpansion
  6.       echo %%a
  7.       endlocal
  8.    )>>网址_!n!.txt
  9. )
复制代码

作者: lijinpengying    时间: 2013-4-25 17:37

回复 2# CrLf
代码不行啊?我刚才验证了下,确实达不到我想要的效果,运行代码,结果只出来两个文本,一个文本里面只有两个网址,一个里面有非常多的
作者: apang    时间: 2013-4-25 17:44

  1. @echo off
  2. set /a n=-1
  3. for /f "delims=" %%a in (a.txt) do (
  4.    set /a n+=1,Name=n/5 + 1
  5.    set "str=%%a"
  6.    setlocal enabledelayedexpansion
  7.    echo,!str!>>"a_!Name!.txt"
  8.    endlocal
  9. )
  10. pause
复制代码

作者: lijinpengying    时间: 2013-4-25 18:41

回复 4# apang


    谢谢,成功了!但是,大侠,可不可以给我讲解下呢?
作者: CrLf    时间: 2013-4-25 18:45

已修改,但我绕弯了,思路没转过来
作者: lijinpengying    时间: 2013-4-25 18:48

回复 6# CrLf


    谢谢,我终于看懂那个代码了,原来换个思路竟然这么简单,我真是笨啊!呵呵!
作者: lijinpengying    时间: 2013-4-25 18:49

回复 4# apang


    谢谢,原来突破点不是在前面的分类,而是在后面生成文本上,哈哈,真有意思
作者: xxpinqz    时间: 2013-4-25 21:23

回复 2#[/url] CrLf
  1.       setlocal disabledelayedexpansion
  2.       echo %%a
  3.       endlocal
复制代码
这个有什么特殊作用吗?
作者: lxh623    时间: 2018-11-7 08:27

EmEditor有这个功能。




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2