标题: [文本处理] 如何利用.bat将文件的字符串的行区间替换? [打印本页]
作者: xuyihui_2008 时间: 2021-10-28 18:16 标题: 如何利用.bat将文件的字符串的行区间替换?
本帖最后由 xuyihui_2008 于 2021-10-28 18:47 编辑
如何利用.bat将文件的字符串的行区间替换?
如图格式为xml格式文件,需要将Algo_Dubins分组下
这些内容全部替换掉,替换的源来自sourse.txt请问我该如何识别<GroupName>Algo_Dubins</GroupName>标志,并将标志后的<File>和</Files>之间的内容做替换- ..\UserSource\AlgoTask\AlgoSrc\RefModel_SystemArchitecture_V10_v3.090_v10.059\Toplevel_AllIn\RefModel_SystemArchitecture.c</FilePath>
- </File>
- </Files>
- </Group>
- <Group>
- <GroupName>Algo_Dubins</GroupName>
- <Files>
- <File>
- <FileName>autonomouscodegen_dubins.cpp</FileName>
- <FileType>8</FileType>
- <FilePath>..\UserSource\AlgoTask\AlgoSrc\RefModel_SystemArchitecture_V10_v3.090_v10.059\Dubins\src\autonomouscodegen_dubins.cpp</FilePath>
- </File>
- </Files>
- </Group>
- <Group>
- <GroupName>Algo_Utils</GroupName>
- <Files>
- <File>
- <FileName>abs_CnlffMg0.c</FileName>
- <FileType>1</FileType>
- <FilePath>..\UserSource\AlgoTask\AlgoSrc\RefModel_SystemArchitecture_V10_v3.090_v10.059\Utils\abs_CnlffMg0.c</FilePath>
复制代码
作者: qixiaobin0715 时间: 2021-10-29 13:44
批处理对于类似的替换并不擅长。效率可能不是太高。- @echo off
- set m=0
- setlocal enabledelayedexpansion
- for /f "delims=" %%i in (test.xml) do (
- set "str=%%i"
- if defined m (
- echo,%%i
- if "!str:~-23,11!"=="Algo_Dubins" set m=1
- if !m!==1 if "!str:~-6!"=="<File>" set m=
- ) else (
- if "!str:~-6!"=="/File>" (
- set m=0
- type,sourse.txt
- echo,%%i
- )
- )
- )
- pause
复制代码
判断语句太多。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |