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

[文本处理] 【已解决】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
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

本帖最后由 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
复制代码
1

评分人数

TOP

  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. )
复制代码
1

评分人数

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

TOP

  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=='
复制代码
1

评分人数

TOP

返回列表