Board logo

标题: [文本处理] 【已解决】BAT:如何在指定位置插入字符 [打印本页]

作者: 思想之翼    时间: 2023-9-23 16:03     标题: 【已解决】BAT:如何在指定位置插入字符

本帖最后由 思想之翼 于 2023-9-24 05:55 编辑

D:\DATA\1.txt记录格式为:
123=000 001=124=003 005 006=125=007
123=000 001=124=003 005 006=125=007
...
123=000=124=003 006=125=007

如何在所有行的第2 4 6 8...个“=”右侧,插入“=”?

结果为:
123=000 001==124=003 005 006==125=007
123=000 001==124=003 005 006==125=007
...
123=000==124=003 006==125=007
作者: pd1    时间: 2023-9-23 17:13

  1. '123=000 001=124=003 005 006=125=007
  2. 123=000 001=124=003 005 006=125=007
  3. ...
  4. 123=000=124=003 006=125=007' -replace '=(.*?)=','=$1=='
复制代码

作者: 77七    时间: 2023-9-23 17:59

  1. @echo off
  2. (for /f "useback delims=" %%x in ("D:\DATA\1.txt") do (
  3. setlocal
  4. call :1 "%%x"
  5. endlocal
  6. ))>"D:\DATA\2.txt"
  7. pause & exit
  8. :1
  9. for /f "tokens=1* delims==" %%a in ("%~1") do (
  10. set str=%str%%%a=%m%
  11. if "%%b" neq "" (
  12. if defined m (
  13. set m=
  14. ) else (
  15. set m==
  16. )
  17. call :1 "%%b"
  18. ) else (
  19. echo %str%%%a
  20. exit /b
  21. )
  22. )
复制代码

作者: Five66    时间: 2023-9-23 18:00

本帖最后由 Five66 于 2023-9-23 18:20 编辑

不知行否,记录内容最好不要有特殊字符
会在当前目录生成新文件2.txt
已编辑
  1. @echo off
  2. set "fpath=D:\DATA\1.txt"
  3. (for /f "usebackq delims=" %%i in ("%fpath%") do (
  4. set "str=%%i"
  5. setlocal enabledelayedexpansion
  6. set str2=!str: =$#$!
  7. set n=0
  8. for %%a in (!str2!) do (
  9. set /a n+=1,m=n%%2
  10. if !m! equ 0 (
  11. set "str3=!str3!%%a=="
  12. ) else (
  13. set "str3=!str3!%%a="
  14. )
  15. )
  16. if !m! equ 0 (
  17. set str3=!str3:~0,-2!
  18. ) else (
  19. set str3=!str3:~0,-1!
  20. )
  21. echo=!str3:$#$= !
  22. endlocal
  23. ))>2.txt
  24. pause
复制代码





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