我需要使用CMD查找文件中第一次出现的字符串,然后根据原始匹配字符串中字符或子字符串的出现次数替换该字符串的一部分。
我的文件位于未知深度的目录中,需要根据相对路径更新所有字符串。
我正在使用For /F
来迭代生成的文件列表,例如FOR/F "tokens=*" %%i in (c:\path\To\FileList.txt) do [
MyAnswerHere ] %%i
所以我们假设第一个%%i
是C:\Dev\WorkSpace\proto\wip\vcpp\io\SomeTool.vcxproj
,而我正在寻找的字符串是<Import Project="$(MSBuildThisFileDirectory)CHANGEME\somePath\ThisProjectsProps.props" />
我正在寻找的子字符串是CHANGEME
到行尾
以及每次CHANGEME
减去3时我需要将..\
更改为EOL为\
,因为我不关心\
in通向工作区根目录的路径,或指向文件本身的最后一个\
,然后通过附加Properties\AllTools.props" />
因此最终结果是将该文件的字符串更新为
<Import Project="$(MSBuildThisFileDirectory)..\..\..\..\Properties\AllTools.props" />