0

我试图为本地 rtmp 服务器制作某种自动 rss 更新程序,我认为最简单的方法是制作一个或两个批处理文件,并让它们通过 Windows 任务计划程序每分钟运行一次。

该服务器将 flv 和 mp4 文件记录在一个目录中,并且我在该本地服务器上嵌入了 jwplayer。该播放器的播放列表通过 rss 文件提供,我希望它们自动更新。

第一个批处理文件很简单

删除 RssRaw.txt 目录 /b > RssRaw.txt

第二个是我一无所知并想寻求帮助的那个。

我希望它解析 RssRaw.txt 文件的每一行并将其保存在 rss/xml 文件中,格式如下:

<rss version="2.0" xmlns:jwplayer="http://rss.jwpcdn.com/">
    <channel>

    <item>
        <title> #1 </title>
        <jwplayer:source file="/assets/#1.1" />
    </item>
    <item>
        <title> #2 </title>
        <jwplayer:source file="/assets/#2.1" />
    </item>

</channel>
</rss>

其中 #1 是唯一的文件名,而 #1.1 是带有扩展名的文件名(.flv 或 .mp4),其中 #2 和 #2.1 是下一行/文件。

我希望可以根据 RssRaw.txt 中的行数自动生成标签

如果我可以排除批处理文件中的某些行/单词会很有帮助,因为通过此设置,它还将列出 RssRaw.txt 中的文本和批处理文件

任何人都可以帮助我或指出正确的方向,甚至知道这是否可以在批处理文件中实现?或者可能有更好的解决方案?

(请记住,我试图将其设为本地服务器,所以这就是我不看网络服务的原因)。

4

1 回答 1

0

这直接从目录中读取文件,您不需要第一批:

@ECHO OFF &SETLOCAL
SET "header1=<rss version="2.0" xmlns:jwplayer="http://rss.jwpcdn.com/">"
SET "header2=    <channel>"
SET "footer1=    </channel>"
SET "footer2=</rss>"

(
SETLOCAL ENABLEDELAYEDEXPANSION
ECHO(!header1!
ECHO(!header2!
ECHO(
ENDLOCAL
FOR %%a IN (*.flv *.mp4) DO (
    ECHO(    ^<item^>
    ECHO(        ^<title^> %%~na ^</title^>
    ECHO(        ^<jwplayer:source file="/assets/%%~nxa" /^>
    ECHO(    ^</item^>
)
SETLOCAL ENABLEDELAYEDEXPANSION
ECHO(
ECHO(!footer1!
ECHO(!footer2!
)>outfile.rss

不过,如果您想从文件中读取,请将FOR循环代码替换为:

FOR /f %%a IN (RssRaw.txt) DO (
于 2013-09-01T16:57:32.483 回答