当前位置: 移动技术网 > IT编程>网络>Dos/Bat > 用某行内容替换特定字符

用某行内容替换特定字符

2017年12月12日  | 移动技术网IT编程  | 我要评论
复制代码 代码如下:

@echo off
:: 用a.txt中的第一行字符,替换b.txt中的###字符.
:: 再用a.txt中的第二行字符,替换b.txt中的@@@字符.
:: ……
:: 如果a.txt第m行中含有在第n行中要替换的内容s(m<n),则会用s来替换b.txt中含有第m行中的匹配内容
:: 例如:假设a.txt中第1行含有在第二行中要替换的@@@,则会用@@@替换b.txt中含有第一行的@@@。
:: 使用格式:要用第m行的内容替换s,就在第m行的位置上加一句 call :_replace s
:: 如果在第n行上没有要替换的内容,第n行的位置加 set num=n
setlocal enabledelayedexpansion
set num=0
call :_replace ###
call :_replace @@@
set num=3
call :_replace $$$
exit

:_replace
set /a num+=1
set char=%1
for /f "tokens=1,2* delims=:" %%i in ('findstr /n . a.txt') do if %%i equ %num% set str=%%j
for /f "delims=" %%i in (b.txt) do (
set _str=%%i
set "_str=!_str:%char%=%str%!"
echo !_str!>>tmp.txt
)
move tmp.txt b.txt

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网