1
我試圖從5個文件中生成視頻站點地圖,其中有不同部分的站點地圖信息。我想出的唯一方法是在每個文件的循環中跳過1行,然後在目標文件中添加下一行,但是這需要很長時間才能完成(超過10分鐘),因爲每行超過3千行文件。每個文件中的所有行都排列在一起,因此必須根據行號「組合」在一起。更有效的方式從多個文件中逐行取出行,並在powershell中編寫新文件
這裏是我使用的代碼:
# Count Number Of Lines
$NumberOfVideos = 0
Get-Content "c:/list_of_links_with_YT_video.txt" |%{ $NumberOfVideos++ }
# Add lines to the sitemap 1 by 1
For($i=1;$i -le $NumberOfVideos;$i++){
' <url>' | Add-Content $outputfolder\videositemap.xml
Get-Content "c:/list_of_links_with_YT_video.txt" | select -first 1 -skip $i | Add-Content $outputfolder\videositemap.xml
" <video:video>" | Add-Content $outputfolder\videositemap.xml
Get-Content "c:/listof_YT_Embeds.txt" | select -first 1 -skip $i | Add-Content $outputfolder\videositemap.xml
Get-Content "c:/listof_YT_Thumbnailss.txt" | select -first 1 -skip $i | Add-Content $outputfolder\videositemap.xml
Get-Content "c:/list_of_video_sitemap_titles.txt" | select -first 1 -skip $i | Add-Content $outputfolder\videositemap.xml
Get-Content "c:/list_of_video_sitemap_descriptions.txt" | select -first 1 -skip $i | Add-Content $outputfolder\videositemap.xml
' </video:video>
</url>' | Add-Content $outputfolder\videositemap.xml
}
# Add last line to the sitemap
"</urlset>" | Add-Content $outputfolder\videositemap.xml
這是在站點地圖文件內容後1個循環的例子:
<url>
<loc>http://mywebsite.com/page-example.html</loc>
<video:video>
<video:player_loc allow_embed="yes" autoplay="autoplay=1">http://www.youtube.com/v/xu3Je-eJgbR</video:player_loc>
<video:thumbnail_loc>http://img.youtube.com/vi/xu3Je-eJgbR/1.jpg</video:thumbnail_loc>
<video:title>Example Title Extracted From a HTML File</video:title>
<video:description>Example Description Extracted From A HTML File</video:description>
</video:video>
</url>
有一些更好的方式來構成1個文件出多個文件?
哇,你是我的朋友!您的代碼需要大約4秒鐘才能完成!非常感謝! –