Batch file 如何从批处理文件中替换html代码(读取:奇数字符)
我编译了一个扩展的批处理脚本,从服务器下载rss文件,并将其中引用的图像下载到本地路径。下一步是修改我下载的rss文件中的图像源。(最终它将用于仅连接到LAN的数字显示解决方案) 我找到了一种通过调用vbs脚本来实现这一点的有效方法: 在我的批次中,我有:Batch file 如何从批处理文件中替换html代码(读取:奇数字符),batch-file,Batch File,我编译了一个扩展的批处理脚本,从服务器下载rss文件,并将其中引用的图像下载到本地路径。下一步是修改我下载的rss文件中的图像源。(最终它将用于仅连接到LAN的数字显示解决方案) 我找到了一种通过调用vbs脚本来实现这一点的有效方法: 在我的批次中,我有: cscript replace.vbs "rss.cfm" "http://blabla.com/images/thumb" "RSS-script/images/normal" vbs脚本包含: Const ForReading = 1
cscript replace.vbs "rss.cfm" "http://blabla.com/images/thumb" "RSS-script/images/normal"
vbs脚本包含:
Const ForReading = 1
Const ForWriting = 2
strFileName = Wscript.Arguments(0)
strOldText = Wscript.Arguments(1)
strNewText = Wscript.Arguments(2)
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile(strFileName, ForReading)
strText = objFile.ReadAll
objFile.Close
strNewText = Replace(strText, strOldText, strNewText)
Set objFile = objFSO.OpenTextFile(strFileName, ForWriting)
objFile.Write strNewText 'WriteLine adds extra CR/LF
objFile.Close
不幸的是,对于我的数字看板软件来说,这还不够。工作原理是为图像创建不同的标记。所以我修改了我的脚本来替换一些标记和代码,但是由于奇怪的字符,脚本崩溃了
所以我需要替换这个相同的字符串:(前缀和类似的后缀)
我发现很多解决方案都在每个符号前对美国说一个插入符号^转义字符,但这对我帮助不大,因为img和src之间也有一个空格。我试过单引号,反引号,没有引号。事实上,我甚至不知道我在做什么:我的脚本功能仅限于我在这里或ss64.com上找到的基本解释
我的原始rss文件如下所示:
<item>
<title>this is the title of the item</title>
<description><![CDATA[<img src="http://www.blabla.com/images/thumb_xyz.jpg" align="left" hspace="5" vspace="5" alt="picture 1" title="description title" width="200">
<p>
STORY CONTENT
</p>
]]></description>
<pubDate>Tue, 19 Nov 2013 18:15:38 +0100</pubDate>
<category>HEADLINES</category>
</item>
这是项目的标题
故事内容
]]>
2013年11月19日星期二18:15:38+0100
标题
我的最终结果应该是:(这是测试和工作)
这是项目的标题
RSS脚本/images/normal_xyz.jpg
故事内容
]]>
2013年11月19日星期二18:15:38+0100
标题
谢谢你能提供的任何帮助,很抱歉发了这么长的帖子。至少我认为所有的信息都在这里
Vik这将修改
文件.RSS
中的示例RSS源,并将其重定向到文件2.RSS
这将使用一个名为repl.bat
的助手批处理文件,该文件来自-
将repl.bat
放在与批处理文件相同的文件夹中,或放在路径上的文件夹中
@echo off
type "file.rss" |repl "(.*<!\[CDATA\[<)img src=\x22.*\/thumb_(.*\.jpg)\x22(.*)" "<image><url>RSS-script/images/normal_$2</url></image>\r\n$1$3" x >"file2.rss"
@echo关闭
键入“file.rss”| repl”(.*rss script/images/normal_$2\r\n$1$3“x>“file2.rss”
您的问题似乎在于引用-如果您发布了实际的源代码以及您实际需要的内容,那么可能有人能够帮助您。thanx查看我的帖子,实际的源代码会发布在上面,上面写着“我原来的rss文件看起来像这样”我真正需要的是下面的内容。你说你使用VBS修改了RSS文件。那不是实际的源代码。不抱歉,我说我找到了一种使用VBS替换RSS中的文件路径的方法,但不幸的是,这种解决方案是不够的。因此,使用相同的脚本,我想替换原始脚本中的字符串is来源?它看起来不应该在那里。这太棒了,我不懂任何代码,但它似乎很有魅力。我现在将在我的数字看板系统上测试结果。嗯……当我把这行代码放在我的主批处理文件中时,它似乎不起作用。我在一个名为test.bat的文件中测试了它,只有这一行h很完美。但是将它放在我的主文件末尾对file2.rss没有任何影响。如果我放置start test.bat
它的工作方式,您执行它的方式一定已经改变,或者它没有被执行。同时尝试删除file2.rss,看看是否创建了一个新的文件-如果它是相同的,那么源文件的格式已经改变。FWIWrepl.bat使用正则表达式使用两个搜索和替换术语。创建了新版本的file2,但内容与源文件相同。据我所知,源文件格式仍然相同。除了我没有发布确切的url,但这对您创建脚本的方式没有影响。但是我解释说,它通过调用外部批处理文件中的代码行来工作。这对我来说已经足够好了。非常感谢你的帮助Vik
.jpg</url></image><description><![CDATA[<
<item>
<title>this is the title of the item</title>
<description><![CDATA[<img src="http://www.blabla.com/images/thumb_xyz.jpg" align="left" hspace="5" vspace="5" alt="picture 1" title="description title" width="200">
<p>
STORY CONTENT
</p>
]]></description>
<pubDate>Tue, 19 Nov 2013 18:15:38 +0100</pubDate>
<category>HEADLINES</category>
</item>
<item>
<title>this is the title of the item</title>
<image><url>RSS-script/images/normal_xyz.jpg</url></image>
<description><![CDATA[< align="left" hspace="5" vspace="5" alt="picture 1" title="description title" width="200">
<p>
STORY CONTENT
</p>
]]></description>
<pubDate>Tue, 19 Nov 2013 18:15:38 +0100</pubDate>
<category>HEADLINES</category>
</item>
@echo off
type "file.rss" |repl "(.*<!\[CDATA\[<)img src=\x22.*\/thumb_(.*\.jpg)\x22(.*)" "<image><url>RSS-script/images/normal_$2</url></image>\r\n$1$3" x >"file2.rss"