1

对powershell游戏非常陌生,认为是时候提高技能了。我在操作员等方面做得很好,但我在实际处理返回的数据时遇到了麻烦,我似乎无法理解它。

我已经使用Get-ContentSelect-String解析了一个文件,并将返回的行传递给变量 $temp1。

如果我使用以下方法查看 $test1 的属性:

>>$temp1 | select-object -expandproperty Matches

我得到以下输出:

Groups   : {http://download.avgfree.com/softw/13free/update/u13iavi5825cq.bin, 5825cq}
Success  : True
Captures : {http://download.avgfree.com/softw/13free/update/u13iavi5825cq.bin}
Index    : 447
Length   : 65
Value    : http://download.avgfree.com/softw/13free/update/u13iavi5825cq.bin

这条线本身就是一长串垃圾,我真正想要的现在包含在Value属性中,但对于我的生活,我无法弄清楚如何实际使用它!

基本上我想做的是使用Value属性中的地址来下载该特定文件。

抱歉,如果我不清楚,今天是我的第一个 PS 日,所以我仍然在努力避开行话!

提前致谢。

4

1 回答 1

4

在 PowerShell V1/2 上尝试:

$temp1 | Foreach {$_.Matches} | Foreach {$_.Value}

V3 有一个漂亮的成员枚举功能,可以让您将其简化为:

$temp1.Matches.Value

$temp1可以包含多个匹配行,并且每个匹配行可以包含多个匹配项(例如,如果您使用-AllMatches参数 on Select-String)。因此有必要迭代所有匹配项,并为每个匹配项访问其 Value 属性。

于 2012-10-12T04:49:20.097 回答