當我運行此命令:通過結果循環設置
$k = Get-Process | select Name -First 3
我得到這樣的輸出:
Name ---- AESTSr64 ApplicationFrameHost BtwRSupportService
我想每個結果放在一個字符串類型的獨立的變量,並得到它的長度。我想知道如何訪問返回的單個行。
我試過一個foreach如下:
foreach ($k in $three) {
write $k
}
得到
Name ---- AESTSr64 ApplicationFrameHost BtwRSupportService
我想只輸出沒有頭和破折號的結果,並顯示在同每個字符串的長度行(當我使用.ToString()
轉換輸入時,我得到空字符串和零長度,因爲每個結果都被視爲一個對象)。
我想這一點,但它產生了錯誤的長度:
foreach ($k in $three) {
$t = $k | Out-String
write ("{0} {1}", $t, $t.Length)
}
所以,我怎麼能產生這樣的:
AESTSr64 08 ApplicationFrameHost 20 BtwRSupportService 18
編輯得到
的一種方式想要的結果,使用下面的答案和註釋:
$three = Get-Process | select -First 3 | ForEach-Object Name
foreach ($k in $three) {
[string]$c = "{0,-15} {1}" -f $k, $k.Length
Write-Host $c
}
'$ k' - >'$ k.Name' –
@ MathiasR.Jessen,非常好的評論,我改成了[string] $ t = $ k.Name,並且修正了長度。謝謝。 – NoChance
''[string]'是不必要的,'$ k。名字'已經是'string'類型了:) –