找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 21063|回复: 3

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

[复制链接]
发表于 2023-9-23 16:03:45 | 显示全部楼层 |阅读模式
本帖最后由 思想之翼 于 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

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2023-9-23 17:13:39 | 显示全部楼层
  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技术 +1 收起 理由
思想之翼 + 1 感谢分享

查看全部评分

发表于 2023-9-23 17:59:57 | 显示全部楼层
  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技术 +1 收起 理由
思想之翼 + 1 感谢分享

查看全部评分

发表于 2023-9-23 18:00:10 | 显示全部楼层
本帖最后由 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技术 +1 收起 理由
思想之翼 + 1 感谢分享

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 10:34 , Processed in 0.020410 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表