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

[文本处理] 批处理按照行数割文本文件怎么写?

一个文本文件,需求按照30行进行分割成
原文件名-001.txt,
原文件名-002.txt
依次类推

虽然有split命令可以分割,但我还想知道
用批处理如何处理?

我帮忙写的代码不需要付钱。如果一定要给,请在微信群或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
  2. set n=0
  3. set x=30
  4. set /a y=x-1
  5. set z=1000
  6. setlocal enabledelayedexpansion
  7. for /f "delims=" %%i in (test.txt) do (
  8.     set /a m=n%%x
  9.     set /a n+=1
  10.     set str!m!=%%i
  11.     if !m! equ %y% (
  12.         set /a z+=1
  13.         (for /l %%j in (0,1,%y%) do (
  14.             echo,!str%%j!
  15.         ))>test-!z:~-3!.txt
  16.     )
  17. )
  18. set /a z+=1
  19. if !m! neq %y% (
  20.     (for /l %%j in (0,1,!m!) do (
  21.         echo,!str%%j!
  22.     ))>test-!z:~-3!.txt
  23. )
复制代码
未经测试

TOP

回复 3# qixiaobin0715

echo , 加个逗号是什么意思啊?
代码写的挺讲究啊,都考虑到30000行文本的分割了,谢谢噢!

TOP

逗号空格是一个意思

TOP

bat小白,请多指教!谢谢!

TOP

  1. @echo off
  2. cd /d "%~dp0"
  3. set file=1.txt
  4. set l=30
  5. set _0=3
  6. set m=10000001
  7. for /f "delims=" %%i in ("%file%") do (
  8. for /f "tokens=1* delims=[]" %%a in ('find /n /v "" ^<"%%i"') do (
  9. setlocal enabledelayedexpansion
  10. for /f %%x in ("!m:~-%_0%!") do (
  11. endlocal
  12. >>"%%~ni-%%x%%~xi" echo=%%b
  13. )
  14. set /a n=%%a%%%l%,1/n 2>nul || set /a m+=10000001
  15. )
  16. )
  17. pause
复制代码
bat小白,请多指教!谢谢!

TOP

回复 7# 77七


    77七大佬,求助新帖期待您出手相助

TOP

分割的文件结尾会多一个换行符
编码全部gbk或ansi
  1. @echo off
  2. set @file=test.txt
  3. set hangshu=30
  4. set shuliang=0
  5. set houzhuishuzi=1000
  6. set "houzhui=_!shuliang:~-3!"
  7. for %%a in ("%@file%") do set @newfile=%%~na&set @fileext=%%~xa
  8. for /f "usebackq delims=" %%i in (`findstr /n .* "%@file%"`) do (
  9. set "line=%%i"
  10. set /a shuliang=aaa/hangshu+houzhuishuzi+1
  11. set /a aaa+=1
  12. setlocal enabledelayedexpansion
  13. if not defined @%houzhui% (
  14. echo create file !@newfile!%houzhui%!@fileext!
  15. cd. >"!@newfile!%houzhui%!@fileext!"
  16. for %%z in ("@%houzhui%") do endlocal&set %%~z=1
  17. ) else (endlocal)
  18. setlocal enabledelayedexpansion
  19. (
  20. echo(!line:*:=!|| ^)?
  21. )>>"!@newfile!%houzhui%!@fileext!"
  22. endlocal
  23. )
  24. pause&exit/b
复制代码

TOP

返回列表