用某行内容替换特定字符_DOS/BAT

复制代码 代码如下:

@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

时间: 2024-12-03 20:39:41

用某行内容替换特定字符_DOS/BAT的相关文章

DEDECMS(织梦)批量替换内容中特定字符

登陆网站后台 "核心"-"批量维护"-"数据库内容替换"可以看到 如果比较复杂的我们可以自己写替换语句了,再利用php来操作,这里就不介绍了如果想了解可进入php教程频道查找.

bat过滤任意字符_DOS/BAT

文章作者:allyesno 早在写 bat的一个小游戏猜数字的时候我就研究过这个问题 如何在bat里面实现 对输入的任意字符进行过滤 当时使用的几种方法如下 Codz:  if "%1"=="要过滤的字符" echo 你输入的是非法字符  例: if "%1"=="wrongpassword" echo 错误口令  set errorlevel=0  echo 要过滤的字符|find "要过滤的字符"  i

显示某两个字符及之间的字符_DOS/BAT

复制代码 代码如下: ::比如我输入 af 就显示 ::a ::b ::c ::d ::e ::f ::每个字母占一行啊``不知能不能实现.. @echo off :: :: :begin cls set str=a b c d e f g h i j k l m n o p q r s t u v w x y z set input= set /p input= 请输入字母范围(如af): call set str=%%str:%input:~0,1%=-☆%input:~0,1%%% cal

dos命令行中cd命令用法_DOS/BAT

显示当前目录名或改变当前目录. CHDIR [/D] [drive:][path] CHDIR [..] CD [/D] [drive:][path] CD [..] .. 指定要改成父目录. 键入 CD drive: 显示指定驱动器中的当前目录. 不带参数只键入 CD,则显示当前驱动器和目录. 使用 /D 开关,除了改变驱动器的当前目录之外, 还可改变当前驱动器. 如果命令扩展被启用,CHDIR 会如下改变: 当前的目录字符串会被转换成使用磁盘名上的大小写.所以, 如果磁盘上的大小写如此,CD

超详细的CMD DOS下符号的作用参考第1/2页_DOS/BAT

一.单符号~① 在for中表示使用增强的变量扩展.② 在%var:~n,m%中表示使用扩展环境变量指定位置的字符串.③ 在set/a中表示一元运算符,将操作数按位取反. !① 在set /a中一元运算符,表示逻辑非.比如set /a a=!0,这时a就表示逻辑1. @① 隐藏命令行本身的回显,常用于批处理中. $① 在findstr命令里面表示一行的结束.② 在prompt命令里面,表示将其后的字符转义(符号化或者效果化). %① 在set /a中的二元运算符,表示算术取余.② 命令行环境下,在

shell-SHELL怎么实际现一个行内容 匹配两个字符之间的内容,一行有多个配置内容。

问题描述 SHELL怎么实际现一个行内容 匹配两个字符之间的内容,一行有多个配置内容. 举例说明:12aa34bb56aa78bb90匹配字符是aa bb 要取得aa bb之间的内容,34,78; 在这先谢谢大神们了. 解决方案 linux sed 替换两个字符之间的内容

WPS中实现文档特定字符的字体替换

随Vista系统一起推出的"微软雅黑"字体,以其对液晶显示器的良好支持,很快获得了很多用户的青睐.就连一些Windows Xp用户也在系统中安装了"微软雅黑",但是,由于微软对中文的了解不够深入,导致一个严重的BUG,就是在微软雅黑字体下,中文双引号不能分出左右,全部显示为"直引号"(图1). 文档特定字符的字体替换-cmd替换特定字符串">图1 很多朋友,既不愿放弃漂亮的微软雅黑字体,又不想用它的"直引号",

求助!替换txt文件指定行内容出现问题。

问题描述 PublicSub替换指定行内容(路径AsString,内容AsString,行AsString)DimistrAsString=My.Computer.FileSystem.ReadAllText(路径)Dima()AsString=istr.Split(vbCrLf)DimbAsIntegera(行)=内容My.Computer.FileSystem.WriteAllText(路径,Join(a,vbCrLf),False)EndSub以上是我的程序,可以正常完成替换工作,但是在x

批处理中实现替换文本内容_DOS/BAT

首先: 注册表添加一个或两个 REG_DWORD 值: HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\EnableExtensions 或 HKEY_CURRENT_USER\Software\Microsoft\Command Processor\EnableExtensions 设值为1 新建文件aaa.bat: @echo off set f=c:\aaa.txt set f2="c:\aaa.bak.txt" f