내가 수행 할 수있는 작업은 해시 테이블 (데이터베이스의 사용자 정보) 배열을 사용하여 csv 파일 (웹 로그 일 수 있음)을 필터링하는 것입니다.해시 테이블 배열로 csv 파일 필터링
#$data is from a database. (about 500 items) Type: System.Data.DataTable
$users = @()
foreach($row in $data)
{
$userItem = @{
LoginId = $row[0]
LastName = $row[3]
FirstName = $row[4]
LastAccess = $null
}
$users += $userItem
}
#Log files are about 14,000 lines long
$logfiles = Get-ChildItem $logFolder -Recurse | where {$_.Extension -eq ".log"} | Sort-Object BaseName -Descending
foreach($log in $logfiles)
{
$csvLog = Import-Csv $log.FullName -Header ("Blank","LoginId","Date")
$u = $users | Select {&_.LoginId}
$filteredcsvLog = $cvsLog | Where-Object { $u -contains $_.LoginId}
#This returns null
....
}
이것은 작동하지 않는 것 같습니다. 무엇이 빠졌습니까? 내 생각 엔 배열을 [string []]로 평면화해야하지만, 그렇게 할 수는 없다.
내가주의 첫 번째 일 : $ data는 CSV입니까? $ row를 배열로 실제로 분할 한 곳은 어디에도 없습니다. – EBGreen
@Data는 System.Data.DataTable을 반환하는 함수에서 가져온 것입니다. 관련 데이터를 가져와 해시 테이블에 배치하기 위해 루프를 반복하고 있습니다. – chris