用批处理(batch),替换多个txt文本中的内容

1)这些文本在同一个文件夹下,该文件夹中包含子文件夹2)这些文本中的内容示例如下:[Original]0000011511000000A51117B1113000N511... 1)这些文本在同一个文件夹下,该文件夹中包含子文件夹
2)这些文本中的内容示例如下:
[Original]
00000115110000
00A51117B11130
00N51117G11310
00A31117B11110
00000135710000
[Original]

3) 需要查找和替换的内容在两个[Original]之间
4)若字符为0,1,5则保持不变
5) 若字符为3,7,A, G, B(即,非0,1,5)则把相应字符改为5

谢谢!
展开
 我来答
albumin
2014-12-01 · TA获得超过1.2万个赞
知道大有可为答主
回答量:4889
采纳率:87%
帮助的人:2411万
展开全部
@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%a in ('findstr /s /m "\[Original\]" *.txt') do (
(for /f "usebackq delims=" %%b in ("%%~a") do (
echo %%b|find "[Original]">nul&&(
echo %%b
if defined orig (set orig=) else (set orig=1))||(
if defined orig (set "line=%%b"
set "line=!line:3=5!"
set "line=!line:7=5!"
set "line=!line:A=5!"
set "line=!line:B=5!"
set "line=!line:G=5!"
echo !line!
) else echo %%b)
))>#
move # "%%~a"
)
追问
多谢帮忙!
您上面的程序大概99%成功了。
但有个小问题,
1)就是最后一行的[Original]也被替换成[/Ori5i55l]
2)还有就是子文件夹中的txt文件中的内容还是改不了
3)每一行末尾都多了一个空格

还有,我是batch新手,代码中的有些东西看不懂,能否帮忙写几行注释!!
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式