所以我用Emby把媒体流到我的电视上。我在观看Lotr扩展到4K,显然,Emby在流式传输如此大小的文件时创建了30 of的代码转换数据。所以大约30分钟后,电影停止了,因为我的硬盘已经满了。
我创建了一个脚本,dat删除该特定文件夹中超过5分钟的文件:
$limit = (Get-Date).AddMinutes(-5)
$path = "C:\Users\*myuser*\AppData\Roaming\Emby-Server\programdata\transcoding-temp"
Get-ChildItem -Path $path -Recurse -Force | Where-Object { !$_.PSIsContainer -and $_.CreationTime -lt
$limit } | Remove-Item -Force现在,这可以很好地工作,但我想让它自动化,否则我必须每30分钟手动运行一次。我试着把它放在一个无限的循环中,但似乎没有删除文件:
$limit = (Get-Date).AddMinutes(-5)
$path = "C:\Users\*myuser*\AppData\Roaming\Emby-Server\programdata\transcoding-temp"
while($true){
Get-ChildItem -Path $path -Recurse -Force | Where-Object { !$_.PSIsContainer -and $_.CreationTime -lt
$limit } | Remove-Item -Force
}有人能给我解释一下为什么循环不能工作吗?什么是合适的解决方案?
发布于 2021-01-30 20:59:42
它不起作用,因为$limit在开始时只计算一次。您需要为循环的每次迭代更新$limit。我会抛出一个Start-Sleep 300来阻止它没完没了地做。
https://stackoverflow.com/questions/65968104
复制相似问题