robocopy 로그 파일을 구문 분석하여 파일 크기, 경로 및 날짜를 수정하려고합니다. 난 아무 문제없이 정규식을 통해 정보를 얻고있다. 그러나, 어떤 이유로, 단일 요소로 배열을 가져오고 그 요소는 3 개의 해시를 포함합니다. 내 용어가 꺼져있을 수 있습니다. 나는 아직도 해시에 대해 배우고있다. 내가 원하는 것은 다중 요소가있는 일반 배열입니다. 내가 얻고여러 요소 대신 해시가 포함 된 요소 하나 - 해결 방법은 무엇입니까?
출력 :
FileSize FilePath DateTime
-------- -------- --------
{23040, 36864, 27136, 24064...} {\\server1\folder\Test File R... {2006/03/15 21:08:01, 2010/12...
당신이 볼 수 있듯이, 하나 개의 행이 있지만, 그 행은 여러 항목이 포함되어 있습니다. 여러 행이 필요합니다.
[regex]$Match_Regex = "^.{13}\s\d{4}/\d{2}/\d{2}\s\d{2}:\d{2}:\d{2}\s.*$"
[regex]$Replace_Regex = "^\s*([\d\.]*\s{0,1}\w{0,1})\s(\d{4}\/\d{2}\/\d{2}\s\d{2}:\d{2}:\d{2})\s(.*)$"
$MainContent = New-Object System.Collections.Generic.List[PSCustomObject]
Get-Content $Path\$InFile -ReadCount $Batch | ForEach-Object {
$FileSize = $_ -match $Match_Regex -replace $Replace_Regex,('$1').Trim()
$DateTime = $_ -match $Match_Regex -replace $Replace_Regex,('$2').Trim()
$FilePath = $_ -match $Match_Regex -replace $Replace_Regex,('$3').Trim()
$Props = @{
FileSize = $FileSize;
DateTime = $DateTime;
FilePath = $FilePath
}
$Obj = [PSCustomObject]$Props
$MainContent.Add($Obj)
}
$MainContent | % {
$_
}
내가 잘못 뭐하는 거지 : 여기
내 코드? 나는 그것을 얻지 못하고있다. 감사.참고 : 내가 System.Collections.Generic.List를 시도하고 있기 때문에 수백만 줄을 처리해야하므로 가능한 한 빨리 처리해야합니다.
이렇게했습니다. 정말 고마워! –