问题很简单,但似乎我对Schtasks的哲学存在问题。
目标:的
当我最喜欢的节目流式传输时,每天只下载2小时的在线流(使用FFMPEG);我们可以给出一个开始和结束日期,但如果它每天都无限期地运行我就没事了。
如何:
安排在线程序启动时运行PowerShell脚本的任务;当然这就是我提出来的;如果你有更好的想法(可能使用Python),请随意提出建议。
我的解决方案:
schtasks /Create /SC DAILY /TN Task1 /TR "powershell.exe .\dl.ps1" /ST 18:00 /DU 02:00
dl.ps1包含:
ffmpeg -i "rtmp://185.23.131.187/live/flv:tv3 live=1" -c copy .\fileName.flv
问题:
此任务在10分钟后重复 - 这是默认的重复时间。
问题
我如何实现目标并避免重复?也许我对持续时间,/ DU和重复间隔/ RI的看法是错误的。
奖金问题
我想根据录制日期更改每个录制文件的名称,即fileName。我如何在PowerShell中执行此操作?
我见过一个需要将任务导出到XML文件的解决方案。我希望如果可能的话,我们可以提出更优雅的解决方案。
答案 0 :(得分:1)
而不是使用/DU
持续时间(根据帮助文本强制默认重复间隔为10分钟)而不是/ET
用于结束时间而/K
用于终止任务。结束时间:
schtasks /Create /SC DAILY /TN Task1 /TR "powershell.exe .\dl.ps1" /ST 18:00 /ET 20:00 /K
要根据录制日期更改文件名称,您可以使用PowerShell脚本中的Subexpression Get-Date
使用$()
-Format
参数,如下所示:
ffmpeg -i "rtmp://185.23.131.187/live/flv:tv3 live=1" -c copy ".\$(get-date -format 'dd-MM-yyyy').flv"