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

[文本处理] 如何利用.bat将文件的字符串的行区间替换?

[复制链接]
发表于 2021-10-28 18:16:05 | 显示全部楼层 |阅读模式
本帖最后由 xuyihui_2008 于 2021-10-28 18:47 编辑

如何利用.bat将文件的字符串的行区间替换?
如图格式为xml格式文件,需要将Algo_Dubins分组下
这些内容全部替换掉,替换的源来自sourse.txt请问我该如何识别<GroupName>Algo_Dubins</GroupName>标志,并将标志后的<File>和</Files>之间的内容做替换
  1. ..\UserSource\AlgoTask\AlgoSrc\RefModel_SystemArchitecture_V10_v3.090_v10.059\Toplevel_AllIn\RefModel_SystemArchitecture.c</FilePath>
  2.             </File>
  3.           </Files>
  4.         </Group>
  5.         <Group>
  6.           <GroupName>Algo_Dubins</GroupName>
  7.           <Files>
  8.             <File>
  9.               <FileName>autonomouscodegen_dubins.cpp</FileName>
  10.               <FileType>8</FileType>
  11.               <FilePath>..\UserSource\AlgoTask\AlgoSrc\RefModel_SystemArchitecture_V10_v3.090_v10.059\Dubins\src\autonomouscodegen_dubins.cpp</FilePath>
  12.             </File>
  13.           </Files>
  14.         </Group>
  15.         <Group>
  16.           <GroupName>Algo_Utils</GroupName>
  17.           <Files>
  18.             <File>
  19.               <FileName>abs_CnlffMg0.c</FileName>
  20.               <FileType>1</FileType>
  21.               <FilePath>..\UserSource\AlgoTask\AlgoSrc\RefModel_SystemArchitecture_V10_v3.090_v10.059\Utils\abs_CnlffMg0.c</FilePath>
复制代码
发表于 2021-10-29 13:44:01 | 显示全部楼层
批处理对于类似的替换并不擅长。效率可能不是太高。
  1. @echo off
  2. set m=0
  3. setlocal enabledelayedexpansion
  4. for /f "delims=" %%i in (test.xml) do (
  5.     set "str=%%i"
  6.     if defined m (
  7.         echo,%%i
  8.         if "!str:~-23,11!"=="Algo_Dubins" set m=1
  9.         if !m!==1 if "!str:~-6!"=="<File>" set m=
  10.     ) else (
  11.         if "!str:~-6!"=="/File>" (
  12.             set m=0
  13.             type,sourse.txt
  14.             echo,%%i
  15.         )
  16.     )
  17. )
  18. pause
复制代码
判断语句太多。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-21 03:29 , Processed in 0.029013 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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