[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
我晕,整个文章就是一行啊,这个用批是解决不了的。。。。
***共同提高***

TOP

回复 15楼 的帖子

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

TOP

原帖由 Batcher 于 2011-2-27 22:12 发表
请把文件内容以附件的方式上传到顶楼


附件已上传到顶楼 版主 看您的啦

TOP

还是纯批,请选择好合适的分隔符,要求分隔符在文字中出现总次数不大于31次,同时每两个分隔符间的文字不大于4096个:
  1. @echo off&setlocal enabledelayedexpansion
  2. del /q part_*.txt 2>nul
  3. set /p zx=请输入最小字符数:
  4. set /p zf=请输入分隔符:
  5. set /a n=1,m=1
  6. :lp
  7. for /f "tokens=%n%* delims=%zf%" %%a in (a.txt) do (
  8.     set "str=%%a"&set /a min=0,pin=8192
  9.     for /l %%c in (1,1,14) do (
  10.         for %%c in (!pin!) do (
  11.             if "!str:~%%c!" equ "" (
  12.                set /a max=pin
  13.                ) else (
  14.                set /a min=pin
  15.             )
  16.             set /a "pin=max+min,y=pin%%2,pin=pin/2+y"
  17.         )
  18.     )
  19.     set /a num+=pin
  20.     if !num! geq %zx% (
  21.        >>part_!m!.txt echo !var!!str!
  22.        set /a m+=1,num=0&set "var="
  23.        ) else (
  24.        set "var=!var!!str!"
  25.     )
  26.     set /a n+=1&goto lp         
  27. )
  28. >>part_%m%.txt echo !var!
  29. echo 搞定。&pause>nul
复制代码
***共同提高***

TOP

附上测试文本,分隔符为#(我自己加上去的—|—)
***共同提高***

TOP

原帖由 batman 于 2011-2-28 02:05 发表
还是纯批,请选择好合适的分隔符,,同时每两个分隔符间的文字不大于4096个:@echo off&setlocal enabledelayedexpansion
del /q part_*.txt 2>nul
set /p zx=请输入最小字 ...


要求分隔符在文字中出现总次数不大于31次 是说在整篇文章中出现的次数不大于31次吗???

我测试了以下 分割出来的所有小文本的内容都是相同的,这是怎么回事呢?

用了您的测试文本 发现分割不全,我用。号分割才分出来几个文本,数量不对呢。

[ 本帖最后由 chuan31 于 2011-2-28 08:59 编辑 ]

TOP

回复 21楼 的帖子

。号在文本中出现次数在31次以内?(因为for中tokens不能大于32),你没看清我的说明吧,请用#做分隔符试试我上传的文本吧。。。
***共同提高***

TOP

原帖由 batman 于 2011-2-28 09:38 发表
。号在文本中出现次数在31次以内?(因为for中tokens不能大于32),你没看清我的说明吧,请用#做分隔符试试我上传的文本吧。。。


不过我实际中就是要按句号分割啊 所以不能按#号 版主看看还有没有其他的途径可以解决

TOP

批一次性能处理的字节数上限是8192,换算成汉字就是4096个,你如果真要用批来解决的话,你的文本字符数就要受到限制,要不就要先手动分解成多个文本(每个应小于8000个字节,4000个汉字)再处理了。。。。
***共同提高***

TOP

回复 8楼 的帖子

因为楼主的文件是只有一行的,用set赋值到变量是不成功的,所以直接就跑到代码结尾去了……我估计是这个原因,所以没运行成功。
看得多说得多,远比不上写得多。

TOP

那要实现这个功能怎么办呢 有没有其他的方法?

TOP

返回列表