Board logo

标题: [文本处理] [已解决]bat批处理把文本行列二次分散到字符,修改后再二次集中为文本? [打印本页]

作者: zzz19760225    时间: 2023-4-12 14:06     标题: [已解决]bat批处理把文本行列二次分散到字符,修改后再二次集中为文本?

1.txt

123

456

789

文本1.txt,三行分别是123,456,789。

批处理操作,一次将各行输出到一个新文本。

1.1.txt

123

1.2.txt

456

1.3.txt

789

然后二次处理,将每个行文本,分为单个字符,再输出为文本。

1.1.1.txt

1

1.1.2.txt

2

1.1.3.txt

3

1.2.1.txt

4

1.2.2.txt

5

1.2.3.txt

6

1.3.1.txt

7

1.3.2.txt

8

1.3.3.txt

9

修改其中一个文件内容5,修改为0。

echo:0 > 1.2.2.txt

然后将这些文件,按照文件名字规律,再集中成大概行列的文本 1.txt。

1.txt

123

406

789

假设为一个太极空间体聚散,圈层级分散为微观气态单元,发生交换变化后,然后又集中聚成一个太极体。

这是一个关键需求,提供想法,思路,程序编码,统统都可以,来者不拒。
作者: 77七    时间: 2023-4-12 15:30

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%a in ('dir /b /a-d *.txt') do (
  4. set /a n1=n3=0
  5. for /f "delims=" %%b in ('type "%%a"') do (
  6. set "str1=%%b"
  7. set /a n1+=1,n2=0
  8. for /l %%m in (0,1,30) do (
  9. if not "!str1:~%%m,1!" equ "" (
  10. set /a n2+=1,n3+=1
  11. >>"%%~na.!n1!.!n2!%%~xa" echo !str1:~%%m,1!
  12. )
  13. )
  14. if !n2! geq !n3! (
  15. set n3=!n2!
  16. )
  17. )
  18. >1.2.2.txt echo 0
  19. for /l %%p in (1,1,!n1!) do (
  20. set "str3="
  21. for /l %%q in (1,1,!n3!) do (
  22. if exist "%%~na.%%p.%%q%%~xa" (
  23. set /p str2=<"%%~na.%%p.%%q%%~xa"
  24. set "str3=!str3!!str2!"
  25. )
  26. )
  27. >>"%%~na-#%%~xa" echo !str3!
  28. )
  29. )
  30. endlocal
  31. pause
复制代码





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