对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日,所以我仍然在努力绕开行话!
提前致谢。
答案 0 :(得分:4)
在PowerShell V1 / 2上尝试:
$temp1 | Foreach {$_.Matches} | Foreach {$_.Value}
V3有一个漂亮的成员枚举功能,允许您将其简化为:
$temp1.Matches.Value
$temp1
可以包含多个匹配的行,每个匹配的行可以包含多个匹配(例如,如果您在-AllMatches
上使用了Select-String
参数)。因此,有必要迭代所有匹配,并为每个匹配访问其Value属性。