2013-09-01 170 views
0

即時通訊試圖爲本地rtmp服務器做一些自動rss更新,我認爲最簡單的方法是做一個或兩個批處理文件,讓他們每分鐘運行一次Windows任務計劃程序。批處理文件解析txt到rss

此服務器記錄在目錄中的flv和mp4文件,並且我已經在本地服務器上嵌入了jwplayer。 該播放器的播放列表通過rss文件傳遞,我希望它們自動更新。

第一個批處理文件很容易

德爾RssRaw.txt DIR/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中的文本和批處理文件。

任何人都可以幫助我或指出正確的方向,甚至知道這是否可以在批處理文件中使用?或者可能有更好的解決方案呢?

(請記住,即時嘗試使這個本地服務器,所以這就是爲什麼我沒有看web服務)。

回答

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 (
+0

非常棒的人,非常感謝。正是我在找什麼。 – user2645886