Powershell - 使用select-object表达式的值

时间:2012-10-12 04:41:09

标签: powershell

对PowerShell游戏来说很新,认为现在是时候进行技巧了。我对运营商等做得很好,但是我在使用返回的数据时遇到了麻烦,我似乎无法绕过它。

我使用 Get-Content Select-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日,所以我仍然在努力绕开行话!

提前致谢。

1 个答案:

答案 0 :(得分:4)

在PowerShell V1 / 2上尝试:

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

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

$temp1.Matches.Value

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