我有这个问题
$arr = @()
$regex = "blabla"
$arr = $body | Select-String $regex -AllMatches | %{$_.Matches} | %{$_Value}
提取的数据应如下所示:
Empty
Value 1
Value 2
Empty
Value 3
当我将其复制到Excel行时:
$row = $worksheet.usedrange.rows.count+1
$usedrange = $worksheet.usedrange
$usedrange.entirecolumn.autofit() | Out-Null
$worksheet.cells.item($row,11) = $arr[$i]
空值被第一个可用数组顺序覆盖并变为这样
Value 1
Value 2
Value 3
Empty
Empty
我怎样才能获得之前提取的原始值?
答案 0 :(得分:0)
Select-String
不会产生不匹配,因此您不会获得包含空字段的结果数组。你需要这样的东西来保留空的"结果":
$arr = New-Object Collections.ArrayList
$body | % { $arr += if ($_ -match $pattern) {$_} else {$null} }
请注意,$body
必须是一行数组才能生效。