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

[文本处理] [分享]批处理按照指定条件合并行

问题:
几行混成一行,第一行是1234567第二行是891011121314第三行是151617181920第四行是21222324252627
第五行是28293031323334第六行是353637383940就是说每3行是776这样排,有听懂的帮我做一下

代码:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set "FileOld=1.txt"
  4. set "FileNew=2.txt"
  5. set RowNum=1
  6. set ColumnNum=0
  7. (for /f "delims=" %%i in ('type "%FileOld%"') do (
  8.     set /p =%%i<nul
  9.     set /a ColumnNum+=1
  10.     if !RowNum! equ 3 (
  11.         if !ColumnNum! equ 6 (
  12.             echo,
  13.             set ColumnNum=0
  14.             set /a RowNum+=1
  15.             set RowNum=0
  16.         )
  17.     ) else (
  18.         if !ColumnNum! equ 7 (
  19.             echo,
  20.             set ColumnNum=0
  21.             set /a RowNum+=1
  22.         )
  23.     )
  24. ))>"%FileNew%"
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

思路新奇的 看不懂
微信:flashercs
QQ:49908356

TOP

本帖最后由 a20150604 于 2019-9-1 14:12 编辑

回复 1# Batcher
  1. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  2. ::
  3. :: problem: http://www.bathome.net/thread-53773-1-1.html
  4. :: 问题:
  5. :: 几行混成一行,第一行是1234567第二行是891011121314第三行是151617181920第四行是21222324252627
  6. :: 第五行是28293031323334第六行是353637383940就是说每3行是776这样排,有听懂的帮我做一下
  7. ::
  8. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  9. @echo off
  10. setlocal enabledelayedexpansion
  11. set "RULE=7 7 6"
  12. set "FileOld=1.txt"
  13. set "FileNew=2.txt"
  14. REM make FileOld
  15. >%FileOld% ( for /L %%i in (1 1 100) do (echo;%%i) )
  16. set /a "cycle=%RULE: =+%"
  17. set /a "sum=0,cnt=1"
  18. for %%a in (%RULE%) do (
  19.     set /a "p_!cnt!=(sum+=%%a)-1,cnt+=1"
  20. )
  21. set /a cnt-=1
  22. set "_test="
  23. for /L %%i in (1 1 %cnt%) do (
  24.     REM debug info
  25.     REM echo;%%i;!p_%%i!
  26.     set "_test=!_test!NOT(#-!p_%%i!)^|"
  27. )
  28. set "_test="(!_test:~0,-1!)""
  29. setlocal DISABLEDELAYEDEXPANSION
  30. set "_test="test=%_test:NOT=!%""
  31. REM debug info
  32. REM set _test
  33. setlocal enabledelayedexpansion
  34. >%FileNew% cd.
  35. set "output_line="
  36. set /a "line_ind=-1" & rem 首行记为 第 0 行
  37. >%FileNew% (
  38.     for /f "delims=" %%a in (%FileOld%) do (
  39.         set "output_line=!output_line!%%a"
  40.         set /a "line_ind_in_cycle=(line_ind+=1) %% cycle, !_test:#=line_ind_in_cycle!"
  41.         REM debug info
  42.         REM echo;%%a;!line_ind_in_cycle!;!test!
  43.         if !test!==1 (
  44.             echo;!output_line!
  45.             set "output_line="
  46.         )
  47.     )
  48. )
  49. start "" "%FileNew%"
  50. <nul set /p=Press any key to exit...
  51. >nul pause
复制代码
1

评分人数

TOP

返回列表