批处理或者vbs脚本实现文件中字符串查找替换
有两个文件test1.txt和test2.txt,test1中每一行为一个字符串,要求使用批处理或者vbs脚本实现在从test1依次读取每一行的字符串然后在test2中查...
有两个文件test1.txt和test2.txt,test1中每一行为一个字符串,要求使用批处理或者vbs脚本实现在从test1依次读取每一行的字符串然后在test2中查找该字符串(例如DDD),找到后在test2将该行中的另外字符串CCC替换为AAA.。。。(备注:注意查找的字符串和需要替换的字符串不是同一个,只是在同一行),另外麻烦把脚本写得全面一点加上注释,谢谢!!!
展开
1个回答
展开全部
写个批处理脚本,有局限性不能处理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
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询