当前位置: 首页 > 图文教程 > 脚本技术 > DOS/BAT > 用某行内容替换特定字符

DOS/BAT
为cmd设置密码的批处理
把下一行的数字复制到前面一行的后面,并用空格分开的批处理
批处理 保留空行替换字符串
批处理 文件归类整理器
批处理 文件归类整理器(当面目录)
批处理 删除重复行的代码
批处理 字符串去空格实现代码[不同部位]
去掉字符串头所有的0的批处理
反序列出文本的每行内容的批处理
反序显示输入内容批处理
把多行文本拼接成用;连接的一行的批处理
把某个目录下所有txt中第三行第四个数字相加
把首行和尾行互换的批处理
拼接相临的奇偶行文本内容
把两个文件中的不同之处提取到某个文件中去
显示只有指定个数字符的行
显示某两个字符及之间的字符
显示随机的5个数
查找偶数行内容的批处理
查找行中的第一个数据串

DOS/BAT 中的 用某行内容替换特定字符


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-11   浏览: 224 ::
收藏到网摘: n/a

复制代码 代码如下:

@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