string - Powershell 单线打印工艺属性
问题描述
我正在尝试自学我的 Powershell (5.1) 并说
PS > Get-Process | Export-CSV process.csv
作为练习,我想提取 process.csv 的第二行,在单独的行上打印 process.csv 的第二行中的所有属性,并使用 PS 单行自动编号。
在 *nix 中,我会说类似
head -2 process.csv | tail -1 | tr "," "\n" | nl
但是我很难在 PS 中复制这种单线。也许我不应该一开始就尝试。无论如何,以下是我已经走了多远:
(get-content process.csv -TotalCount 2 | select -Index 1).Replace(",", "`r`n")
它有点工作,并输出这个
“名称”“SI”“句柄”...
这不是我要找的。PS 说输出是一个大字符串对象,而不是单独的行。所以,我假设一个大对象/字符串中包含的多行需要作为单个对象通过管道传输到 '''foreach''' ,但我不知道该怎么做。无论如何,我希望输出看起来像这样......
- 姓名
- SI
- 把手...
有任何想法吗?提前致谢!非常恭敬。
解决方案
这是结果的电源外壳中的一个衬里:
(ps)[1] | select *
现在为您的步骤:只需获得 10..
(ps)[0..9] | select * | export-csv -path "c:\temp\ps_$(Get-Date -f "mmddyyy").csv" -NoTypeInformation -force
$lineprops = (import-csv -path "c:\temp\ps_$(Get-Date -f "mmddyyy").csv")[1]
这是一个 ps 对象,因此您可以选择属性等。
$lineprops.name
$lineprops | select name, id , CPU
想要索引它使用数组以获得更多乐趣
$arrayofvalues = ($lineprops.PSObject.Properties).value
$arrayofvalues[0,2,2,6+10..13+15]
[array]::IndexOf($arrayofvalues,$arrayofvalues[10]) # kinda redundant by true
这是索引对象
$indexed=@()
$psnow=(ps)[0..9]
foreach($i in $psnow )
{
$indexed += [pscustomobject]@{ Name=$i.name; ID=$i.id; index = [array]::IndexOf($psnow,$i)}
}
$indexed
将这一切压缩为一行
((ipcsv -path c:\file.csv)[1].PSObject.Properties).value | %{$i++;[pscustomobject]@{ Value=$_; Index = $i}}
您可以将其添加到数组列表中以加快速度
推荐阅读
- jquery - 如何更改每个数组的字体
- nsis - 在 NSIS SetOverwrite 中模拟不存在的选项“ifNotModified”
- javascript - 如何通过查询字符串将 javascript 变量传递给 html 测试文件
- python - Python - 颜色混合分配
- docker - 在 docker 容器中运行新的风帆
- ruby-on-rails - Nokogiri 未正确解析 XML 字符串
- vercel - 使用 node-config 包,有没有办法在 javascript 中设置 custom-environment-variables.json?
- java - 使用 && 或 || 时使用括号会有所不同吗?
- angular - 如何根据 NgRx 存储中的值动态修改列表?
- asp.net - VB.Net 扩展函数不是字符串的成员