用批处理(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
谢谢! 展开
2)这些文本中的内容示例如下:
[Original]
00000115110000
00A51117B11130
00N51117G11310
00A31117B11110
00000135710000
[Original]
3) 需要查找和替换的内容在两个[Original]之间
4)若字符为0,1,5则保持不变
5) 若字符为3,7,A, G, B(即,非0,1,5)则把相应字符改为5
谢谢! 展开
1个回答
展开全部
@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新手,代码中的有些东西看不懂,能否帮忙写几行注释!!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询