Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 如何从批处理文件中替换html代码(读取:奇数字符)_Batch File - Fatal编程技术网

Batch file 如何从批处理文件中替换html代码(读取:奇数字符)

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

我编译了一个扩展的批处理脚本,从服务器下载rss文件,并将其中引用的图像下载到本地路径。下一步是修改我下载的rss文件中的图像源。(最终它将用于仅连接到LAN的数字显示解决方案)

我找到了一种通过调用vbs脚本来实现这一点的有效方法:

在我的批次中,我有:

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"