批处理以在另一个文本列表中指定的替换替换文本列表的某些部分



我需要一个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 = NE‌WSIDTOREPLACE ,藏= 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"

相关内容

  • 没有找到相关文章

最新更新