问题描述
我试图寻找一个文本文件从一个bat文件一个特定的字符串。如果字符串存在,则在下一行后它添加一个新的字符串。我似乎无法得到正确以下工作code。任何想法?
这是我在寻找我的文本文件中的字符串。 [/脚本/ MyGame.Mode]
下面就是该文本文件的样子。
[/脚本/ Config.Mode]
东西在这里1
这里的东西2[/Script/MyGame.Mode]
东西在这里1
这里的东西2[/Script/Edit.Mode]
东西在这里1
这里的东西2
这就是我想要的样子。
[/脚本/ Config.Mode]
东西在这里1
这里的东西2[/Script/MyGame.Mode]
RedirectReferences=(PackageName=\"%Package%\",PackageURLProtocol=\"%PackageURLProtocol%\",PackageURL=\"%WebAddress%/%Package%%Ext%\",PackageChecksum=\"\")
东西在这里1
这里的东西2[/Script/Edit.Mode]
东西在这里1
这里的东西2
这里的code我有这么远。
关闭@echo:获取信息
回声。
回声。
CLS
回声。
回声让我们为您配置的一些信息。
回声注意:您在下面输入的信息是区分大小写的。您可以复制和粘贴。
回声。
回声这里的包名的例子:DM-MyTest的-WindowsNoEditor
回声。
集/ P封装=输入包的名称:
回声。
回声。
回声。
回声包URL协议将HTTP或https
回声。
集/ p PackageURLProtocol =输入包装URL协议:
回声。
回声。
回声。
呼应这里有一个WebAddress例如:www.myredirect.com/test(不要加尾随/)
集/ p WebAddress =输入重定向(WebAddress)网址:
回声。
回声。
回声。
回声的文件扩展名通常是.pak
回声。
设置/对外部=输入地图文件扩展名:
回声。
CLS
回声。
回声请稍候...目前创建测试参考。:SHOWLINE
回声。
组NewURL=RedirectReferences=(PackageName=\"%Package%\",PackageURLProtocol=\"%PackageURLProtocol%\",PackageURL=\"%WebAddress%/%Package%%Ext%\",PackageChecksum=\"\"^^)暂停:WRITENEW
设置inputfile中= game.txt中
设置OUTPUTFILE = game.temp.txt
(FOR / F有usebackq ^ ^ delims = ^ ^停产= %%一中(%inputfile中%)做(
如果%%〜一个==[/脚本/ MyGame.Mode]叫回声%NEWURL%
回声%%一
))>>中OUTPUTFILE%%回声。
暂停
-
当我在命令提示符控制台运行贴code我看到了一个语法错误:
Apparently the parentheses inside
NewURL
break things when expanded in the loop.A straightforward solution would be to delay the expansion by using the
call
trick:call echo %%NewURL%%
Alternatively:
setlocal enableDelayedExpansion & echo !NewURL! & endlocal
Or double-escape the closing parenthesis with
^^
(one time forset
and another for an expanded value inside the loop):set NewURL=.............PackageChecksum=""^^)
Another issue is that the output file name is the same as the input file name but it's impossible to redirect output into the same file as you're reading.
Change the output name to a different file. Then replace the original after the loop is finished:
set inputfile=game.txt set outputfile=game.temp.txt ................... ))>>"%outputfile%" move/y "%outputfile%" "%inputfile%"
And to change the order of the new string to print it after the found line simply swap the two lines inside the inner loop:
echo %%a if "%%~a"=="[/Script/MyGame.Mode]" call echo %%NewURL%%
这篇关于BATCH - 查找文本文件中字符串,该行后添加一个新的字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!