我需要一个bat文件来动态替换文本的某些部分
替换更改通常我需要将替换直接插入保存在我pc中的文本文件
要替换的文本文件包含如下行(D:Programmi Installatilist_to_replace.txt):
home.php&sid=1111111111&hid=2222222222
house.php&sid=3333333333&hid=9999999999
horse.asp&sid=4444444444&hid=2222222222
带有新sid的文本文件要使用并替换所有旧sid (D:Programmi Installatilist_new_sid.txt):
9999999999
我需要用一个新的sid更新所有旧的sid,我可以在保存在我的pc中的文本列表中指定
最终替换示例:
文本文件(D:Programmi Installatilist_new_sid.txt)包含新的sid,如9999999999
bat程序将旧的sid替换为新的sid,并使此结果在(D:Programmi Installatilist_to_replace.txt)
home.php&sid=9999999999&hid=2222222222
house.php&sid=9999999999&hid=9999999999
horse.asp&sid=9999999999&hid=2222222222
这是一个保存在列表
中的示例行siteaaa.it/en/page.aspx ? fqdn = name.vpn.net& ip = 10.20.30.40& tcp = 0, udp = 20788, sid = NEWSIDTOREPLACE ,藏= 8888888
有必要调整代码,只替换&sid=和&hid=之间的部分(我用粗体写的部分,以方便识别),不删除或编辑文本的其他部分
你能帮我一下吗?Thanks, Best Regards
@echo off
setlocal EnableDelayedExpansion
set /P "newSid=" < "c:/programmi/list_new_sid.txt"
(for /F "usebackq delims=" %%a in ("c:/programmi/list_to_replace.txt") do (
set "url=%%a"
for /F "delims==&" %%b in ("!url:*sid=!") do (
set "url=!url:%%b=%newSid%!"
)
echo !url!
)) > temp.txt
move /Y temp.txt "c:/programmi/list_to_replace.txt"