如何在未知完整行内容时用批处理替换另一批处理文件中的行
解决方案:替换启动脚本中的YouTube直播聊天链接
针对你遇到的脚本仅能生效一次的问题,这里提供两种可行的解决办法:
方案1:匹配所有启动行,动态替换链接
修改你的link.cmd,让它能过滤掉任何以start "" "开头的行,而非固定的旧链接行。这样不管之前的链接是什么,都能被替换成新的链接:
@echo off set /p link= Link to LiveChat = >open.cmd.new ( rem 过滤掉所有以start "" "开头的行 findstr /v "^start \"\" \"" open.cmd echo start "" "%link%" ) move /y open.cmd.new open.cmd >nul
原理说明
原脚本的findstr /vxc:"start "" "link""是精确匹配固定的旧行,替换后该行消失就无法再匹配。改成findstr /v "^start \"\" \""后,会匹配所有以start "" "开头的行并过滤掉,再添加新的启动命令,无论之前的链接是什么都能正常替换。
方案2:直接重新生成open.cmd(更简洁)
既然open.cmd仅需一行启动命令,完全可以直接覆盖生成新文件,无需读取旧内容:
@echo off set /p link= Link to LiveChat = echo start "" "%link%" > open.cmd
原理说明
直接用echo命令将新的启动行写入open.cmd,覆盖原有内容,彻底避开旧链接匹配的问题,每次都生成全新的启动脚本。
内容的提问来源于stack exchange,提问作者Shrezno
相关产品推荐
相关产品推荐

