批处理如何实现指定文件中字符替换成第二文本文件中的指定字符.10
把B.txt的字符串先赋值变量后,替换相应的关键字
@echo off& setlocal enabledelayedexpansion
for /f \"delims=\" %%1 in (B.txt)do (set /a snow+=1&& set snow!snow!=%%1)
(for /f \"delims=\" %%1 in (A.txt)do echo %%1| findstr \"1234\">nul&& (set /a wind+=1
set wind!wind!=%%1&& call call echo %%%%wind!wind!:1234=%%snow!wind!%%%%%%)|| echo %%1)>wind.txt
======================================================================
楼上的朋友-biatxue 说的是,确实没有考虑到一行有多个1234
在这种情况下替换,批处理比较麻烦,改了个VBS的。
set fso = createobject(\"scripting.filesystemobject\")
set ofrt = fso.opentextfile(\"wind.txt\",8,true)
set ofrd2 = fso.opentextfile(\"B.txt\",1): dim B(9999)
do until ofrd2.atendofstream
i = i + 1: B(i) = ofrd2.readline: loop
set ofrd1 = fso.opentextfile(\"A.txt\",1)
do until ofrd1.atendofstream
snow = ofrd1.readline
if instr(snow,\"1234\") > 0 then
while instr(snow,\"1234\") > 0
k = k + 1: snow = replace(snow,\"1234\",B(k),1,1)
wend: ofrt.writeline snow
else: ofrt.writeline snow
end if: loop