我有一个这样的文件:
line one email1
line two email1
line three email2
line four email1
如果我只想提取包含“email1”的行,我这样做:
$text = Get-Content -Path $path | Where-Object { $_ -like *email1* }
$text 现在是一个包含这些行的 3 个元素的数组,我像这样遍历它:
for ($i = 0; $i -lt $text.Length; $i++)
{
#do stuff here
}
但是,如果我想获取包含“email2”的行。
$text = Get-Content -Path $path | Where-Object { $_ -like *email2* }
返回一个字符串,而不是一个元素的数组。
当我遍历它时,它遍历字符串中的每个字符。
我怎样才能使它成为一个包含一个元素而不是一个字符串的数组?
最佳答案
为了始终获得 数组 ,即使有 1(即不是字符串)或 0(即不是 $null
)项,请使用运算符 @()
:
$text = @(Get-Content -Path $path | Where-Object { $_ -like *email1* })
关于Powershell Get-Content with Where-Object,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22978121/