[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
苦思n久,终于有了希望,代码编写中。。。
***共同提高***

TOP

本帖最后由 batman 于 2011-4-27 21:45 编辑

需要用到split.exe
下载地址:http://bbs.bathome.net/viewthrea ... ighlight=%2Bbatcher
  1. @echo off&setlocal enabledelayedexpansion
  2. md temp
  3. split -b 8000 a.txt temp\
  4. for /r temp %%a in (*) do (
  5.     for /f "delims=" %%b in (%%a) do (
  6.         set "str=!str!%%b"
  7.         for /l %%b in (0,100,3900) do (
  8.             set /a m+=1
  9.             if !m! leq 10 (
  10.                set "a=!a!!str:~%%b,100!指定字符"
  11.                set "str=!str:~100!"
  12.                ) else (
  13.                set /a n+=1,m=0
  14.                echo !a!>fg_!n!.txt&set "a="
  15.             )
  16.         )
  17.     )
  18. )
  19. if "!a!" neq "" set /a n+=1&echo !a!>fg_!n!.txt
  20. rd /s /q temp
复制代码
***共同提高***

TOP

解决问题了不?
***共同提高***

TOP

首先告诉我问题得到解决了不,没解决我好修改代码。。。
***共同提高***

TOP

就在这个链接中你找到split.exe下载就是的啊,放在当前目录下就可以了,我也是刚从这里下的。。。
***共同提高***

TOP

19# zm900612
你测试了sed能处理楼主这样的问题?
***共同提高***

TOP

本帖最后由 batman 于 2011-4-28 20:43 编辑
  1. @echo off&setlocal enabledelayedexpansion
  2. for /r %%a in (*.txt) do (
  3.      set /a n+=1
  4.      if !n! leq 10 set "str=!str!%%~nxa+"
  5.      if !n! equ 10 set /a m+=1,n=0&copy /y !str:~,-1! fg_!m!.tm&set "str="
  6. )
  7. if defined str set /a m+=1&copy /y !str:~,-1! fg_!m!.tm
  8. del /q *.txt&ren *.tm *.txt         
复制代码
***共同提高***

TOP

本来还想修改文本分割的代码,但既然楼主已经走到这一步了,就算了。。。
***共同提高***

TOP

本帖最后由 batman 于 2011-4-28 20:49 编辑
  1. @echo off&setlocal enabledelayedexpansion
  2. rd /s /q temp fgfile 2>nul&md temp fgfile
  3. split -b 8000 a.txt temp\
  4. set /a b=0
  5. for /r temp %%a in (*) do (
  6.     set /a "a=(%%~za+b)/200","b=(%%~za+b)%%200"
  7.     for /f "delims=" %%b in (%%a) do (
  8.         set "str=!str!%%b"
  9.         for /l %%b in (1,1,!a!) do (
  10.             set /a m+=1
  11.             if !m! leq 9 set "c=!c!!str:~,100!指定字符"
  12.             if !m! equ 10 set /a n+=1,m=0&echo !c!!str:~,100!指定字符>fgfile\fg_!n!.txt&set "c="
  13.             set "str=!str:~100!"
  14.         )
  15.     )
  16. )
  17. if "!c!" neq "" set /a n+=1&echo !c!>fgfile\fg_!n!.txt
  18. rd /s /q temp&start fgfile
复制代码
--------------------------------------------------------------------------
郁闷,转成unicode根本实现不了读取,8000改成16000也会出错。。。
***共同提高***

TOP

32# qzwqzw
学习了,功能已加到代码中。。。
***共同提高***

TOP

你可不可以将你的文本做附件贴上来?
***共同提高***

TOP

35# sunflowerr_88
在编辑时掉了一个x字符,已经修改。。。
***共同提高***

TOP

返回列表