arrays - 单行显示路径的数组
问题描述
我被困住了!我觉得我已经尝试了一切并且永远在谷歌上搜索。不管我做什么; 当我尝试列出包含路径的数组时,它们都显示为没有换行符。即使我尝试使用拆分命令,在列出数组时我也无法每行获得一个项目。这是有问题的代码的某些部分...
[System.Collections.ArrayList]$24fps = @()
[System.Collections.ArrayList]$30fps = @()
[System.Collections.ArrayList]$48fps = @()
$video = ".\*.mov"
Get-ChildItem $video -recurse | ForEach-Object {
$ffprobeFPSData = ffprobe -select_streams V:0 -v 0 -of csv=p=0 -select_streams v:0 -show_entries stream=r_frame_rate $_ | Out-String
$FPSVariables = $ffprobeFPSData -replace "`n" -replace "" -split '/'
$averageFPS = [decimal]$FPSVariables[0]/$FPSVariables[1]
Write-Host "$($_.BaseName)$($_.Extension) - FPS: $($averageFPS)"
if ([int]$averageFPS -le 26) {
[array]$24fps.Add($_.FullName)
$CFRValue = 24
}
elseif ([int]$averageFPS -le 35) {
[array]$30fps.Add($_.FullName)
$CFRValue = 30
}
else {
[array]$48fps.Add($_.FullName)
$CFRValue = 48
}
}
Write-Host "24 FPS: $($24fps)`n"
Write-Host "30 FPS: $($30fps)`n"
Write-Host "48 FPS: $($48fps)`n"
我试过像这样拆分它:有了这个我可以获得单个条目,但我仍然没有想出一种方法来列出它们。这让我觉得我制作数组的方式有问题,但我不知道是什么方式,,,
$test = $30fps -split ' D:'
Write-Host "TEST ARRAY `"$($test[3])`"`n"
Write-Host "TEST ARRAY `"$($test[45])`"`n"
解决方案
这是因为Write-Host
行为是使用空格作为分隔符而不是换行来连接数组元素。
因此,它本身并不是一个很好的选择。
不过,有多种方法可以做你想做的事。
Out-Host
$30fps | Out-Host
有时您可能真的想使用 Write-Host 添加一些自定义颜色,在这种情况下,您可以Out-String
先通过管道传递数组,然后再Write-Host
$30fps | Out-String | Write-Host -ForegroundColor Cyan
或者您可能希望遍历元素以添加任意内容以用于显示目的,例如索引,在这种情况下 aForEach
可以解决问题
$index = 0
$30FPS | Foreach {Write-Host "$("$($index).".PadRight(10,' '))$_";$index+=1}
最后,最接近您编写的是单行Write-Host
,但我们首先将数组元素组合成一个多行字符串。
Write-host "$($30fps -join "`n")"
推荐阅读
- flutter - 为什么我们应该在颤振中使用选项?
- java - 如何编写可以处理 SequenceType.SINGLE_STRING 或 SequenceType.EMPTY_SEQUENCE 的 Saxon ExtensionFunctionDefinition
- heroku - Heroku 错误:错误 R10(启动超时)-> Web 进程在启动后 60 秒内无法绑定到 $PORT
- json - 在 SQL Server 中使用名称中包含数字的 JSON 属性解析 JSON
- java - JdbcTemplate “查询”在 Spring 中已弃用。动态参数的解决方法是什么?
- sql - 如何在Oracle sql中将行转置为列
- node.js - 如何在python子进程中使用异步等待
- javascript - 如何通过单击 nopcommerce 4.3 中数据表 ColumnProperty 中的按钮来调用自定义链接
- kubernetes - 如果容器不健康,有没有办法自动重启 Pod 部署
- python-3.x - 在没有openCv的情况下查找对象的坐标