我希望在现有CSV的开头添加两列,这些列将用于存储在该行和行号上找到的所有匹配项。我的搜索工作正常,可以找到匹配项,只是不确定如何将找到的值插入/附加到现有(或新创建的)电子表格中。
我的第一个问题是,当我添加名为“ ICHit”和“ Line”的2个新列时,它将删除我的整个CSV。我也不知道从哪里开始将值附加到CSV中匹配的行上。
在此先感谢您的帮助!
COLUMNS = ICHit,Line,UserName,EmailAddress,Code
CellValues = MATCHGOESHERE,LINENUMBERHERE,Bob,Bob@gmail.com,12345
$date = Get-Date -UFormat "%Y-%m-%d"
$OutPutFileName = "SearchResults" + $date + ".csv"
$CSV= "U:\Found\$OutPutFileName"
$RXSearchList = "12345,bob@gmail.com"
$filetosearch = "\\server\SpreadsheetToSearch.csv"
Import-Csv $filetosearch | #add new columns
Select-Object *,@{Name='column0';Expression={'setvalue'}} |
Export-Csv $filetosearch -NoTypeInformation
$File2 = new-object System.IO.StreamWriter($CSV,$true) #Append or Create a new file Stream.
$File2.WriteLine('ICHit,Line') # New Columns to add
$file = New-Object System.IO.StreamReader ($filetosearch) # Input Stream
while (($text = $file.ReadLine()) -ne $null ){
foreach ($RX in $Global:RXSearchList){
foreach ($match in ([regex]$RX).Matches($text)) {
$Global:File2.WriteLine("{0},{1}",$match.value,$text)
}
}
}
$file.close();
$Global:File2.close() #file2