批处理或者vbs脚本实现文件中字符串查找替换

有两个文件test1.txt和test2.txt,test1中每一行为一个字符串,要求使用批处理或者vbs脚本实现在从test1依次读取每一行的字符串然后在test2中查... 有两个文件test1.txt和test2.txt,test1中每一行为一个字符串,要求使用批处理或者vbs脚本实现在从test1依次读取每一行的字符串然后在test2中查找该字符串(例如DDD),找到后在test2将该行中的另外字符串CCC替换为AAA.。。。(备注:注意查找的字符串和需要替换的字符串不是同一个,只是在同一行),另外麻烦把脚本写得全面一点加上注释,谢谢!!! 展开
 我来答
yyykkkyyyy
2014-05-04 · TA获得超过3136个赞
知道大有可为答主
回答量:2691
采纳率:40%
帮助的人:3290万
展开全部

写个批处理脚本,有局限性不能处理UTF8文本, 另外对替换串(CCC AAA)有某些特殊符限制,先 test 再说吧

@echo off
set "f1=test1.txt"
set "f2=test2.txt"
set "cs=CCC=AAA"
cd/d "%~dp0"
echo;正在查找...
for /f "tokens=1* delims=:" %%i 知仿in (
'type "%f2%"^|findstr/ng:"%f1%"')do (
   echo %%j
   set "h=%%j"
   call :yky #%%i)
echo;&goto :next
:yky
setlocal enabledelayedexpansion
set "h=!h:%cs%!"
endlocal&set "%1=%h%"&goto :eof
:next
echo 替换并写入文件...
(for 指皮/f "tokens=1* delims=:" %%i in (
'type "%f2%"^|findstr/n .*')do (
   set "h=%%j"
   setlocal enabledelayedexpansion
   if defined #%%i set "h=!#%%i!"
   >con echo;!h!
   echo;!h!
   唯猛差endlocal
))>"new.txt"
:: move "new.txt" "%f2%"
echo;&pause
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式