如何从包含字符串的变量中获取数字? -电源外壳

时间:2012-12-06 15:47:09

标签: powershell

所以我有一个包含这样的行的文件:

Peter Nagy 3 4 6 7 4

我需要一个Power shell脚本,要求用户提供一个名称,然后计算出该名称旁边的数字的数量。请帮忙:)

$name1 = read-host 
$content = Get-Content test.txt
$talalt = $content | Where-Object { $_ -match  $name1 }

我不知道在此之后该怎么做,以及如何摆脱该字符串中的数字。

提前致谢

2 个答案:

答案 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 }}