所以我有一个包含这样的行的文件:
Peter Nagy 3 4 6 7 4
我需要一个Power shell脚本,要求用户提供一个名称,然后计算出该名称旁边的数字的数量。请帮忙:)
$name1 = read-host
$content = Get-Content test.txt
$talalt = $content | Where-Object { $_ -match $name1 }
我不知道在此之后该怎么做,以及如何摆脱该字符串中的数字。
提前致谢
答案 0 :(得分:2)
以下内容可以满足您的需求:
$name1 = read-host
$content = Get-Content NamesList.txt
$talalt = $content | Where-Object { $_ -match $name1 }
$SplitString = $talalt.split(" ")
$NumberofNumbers = $SplitString.count-2
$total = 0;
for($i=2;$i-le $SplitString.count;$i++)
{
$total = [int]$SplitString[$i] + $total
}
$average = $total/$NumberofNumbers
write-host "Average for $($name1) is $($average)"
问候 Arcass
答案 1 :(得分:2)
您基本上需要从第一个数字到行尾选择,拆分各个数字,然后对它们进行平均,例如:
$content | Where-Object { $_ -match $name1 } |
Foreach {if ($_ -match '\D+(\d.*)') {-split $matches[1] | measure -average }}