首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >搜索添加并替换为批处理

搜索添加并替换为批处理
EN

Stack Overflow用户
提问于 2012-03-20 04:06:37
回答 1查看 132关注 0票数 0

我需要一个批处理文件,它将搜索字符串"Gen_1_X“。当找到字符串时,假设"X“是"4”,脚本将在前面和后面分别添加"Gen_1_3“和"Gen_1_5”。基本上是从原始数字中加一减一,并相应地在前后添加新的条目。第一段代码是最终产品应该是什么样子的。第二个块是您必须处理的内容。

代码语言:javascript
复制
<span class="O verse Gen_1_3" data-osis="Gen.1.3"><span class="verse-num v-4">4&nbsp;
<span class="O verse Gen_1_4" data-osis="Gen.1.4"><span class="verse-num v-4">4&nbsp;    </span></span>
<span class="O verse Gen_1_5" data-osis="Gen.1.5"><span class="verse-num v-4">4&nbsp;

<span class="O verse Gen_1_5" data-osis="Gen.1.5"><span class="verse-num v-5">5&nbsp;</span></span>
<span class="O verse Gen_1_6" data-osis="Gen.1.6"><span class="verse-num v-6">6&nbsp;</span></span>
<span class="O verse Gen_1_7" data-osis="Gen.1.7"><span class="verse-num v-7">7&nbsp;</span></span>
<span class="O verse Gen_1_8" data-osis="Gen.1.8"><span class="verse-num v-8">8&nbsp;</span></span>
<span class="O verse Gen_1_9" data-osis="Gen.1.9"><span class="verse-num v-9">9&nbsp;</span></span>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-20 07:53:04

代码语言:javascript
复制
@echo off
setlocal EnableDelayedExpansion
call :processFile < inputFile.ext > outputFile.ext
goto :EOF

:processFile
   set line=EOF
   set /P line=
   if "!line!" == "EOF" goto :EOF
   set X=
   set "lineNoGen=!line:Gen_1_=$!"
   if "!lineNoGen!" neq "!line!" (
      for /F "tokens=1-3 delims=$" %%a in ("!lineNoGen:Gen.1.=$!") do (
         set "beforeGen=%%a"
         set "betweenGens=%%b"
         set "afterGen=%%c"
         set "X=!betweenGens:~0,1!"
         set /A Xm1=X-1, Xp1=X+1
         echo !beforeGen!Gen_1_!Xm1!!betweenGens:~1!Gen.1.!Xm1!!afterGen:~1!
      )
   )
   echo !line!
   if defined X (
      echo !beforeGen!Gen_1_!Xp1!!betweenGens:~1!Gen.1.!Xp1!!afterGen:~1!
   )
goto :processFile

备注:

1-上一个批处理文件在输入文件的第一个空行结束。如果需要,这个问题可能会得到解决。

2-在输入行中有一定的限制。有些可能会得到解决,但有些则不会。请做个测试并报告结果。

3-我假设输入行没有$字符。如果是,请将批处理文件中的$更改为另一个未使用的字符。

编辑:我修复了一个小bug,它不能更新Gen.1.X部件中的数字。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9777092

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档