Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- cls
- $file = Get-Content "DHCP_show_OptionValue.txt" | Out-String
- #$regexStr = "Options for Scope (\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}):\r\n\r\n\tDHCP Standard Options :\r\n\tGeneral Option Values:\r\n\t(OptionId : (\d+) \r\n\tOption Value: \r\n\t\tNumber of Option Elements = \d+\r\t\tOption Element Type = \w\r\n\t\tOption Element Value = ([\r\n]+)\r\n)+"
- $regexStr = "Options for Scope (\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}):[\r\n]+[\t]+[^\r\n]*[\r\n]+\t+[^\r\n]*[\r\n]+(\t+OptionId : (\d+) [\r\n]+\t+[^\r\n]*[\r\n]+\t+[^\r\n]*[\r\n]+\t+[^\r\n]*[\r\n]+(\t+Option Element Value = ([^\r\n]+)[\r\n]+)+)+"
- $regex = [regex]::Matches($file, $regexStr, [System.Text.RegularExpressions.RegexOptions]::Multiline -bor [System.Text.RegularExpressions.RegexOptions]::IgnoreCase)
- $objArr = @()
- foreach($match in $regex){
- #$scope = $match.Groups[1].Value
- $ScopeName = $match.Groups[1].value
- foreach($capt in $match.Groups[2].Captures){
- $optID = [regex]::Match($capt.Value, "OptionId : (\d+)").Groups[1].Value
- $OptVal = [regex]::Matches($capt.Value, "Option Element Value = ([^\r\n]+)", [System.Text.RegularExpressions.RegexOptions]::Multiline) | foreach {$_.Groups[1].Value}
- $obj = New-Object System.Object
- $obj | Add-Member -Name "ScopeName" -MemberType NoteProperty -Value $ScopeName
- $obj | Add-Member -Name "OptID" -MemberType NoteProperty -Value $optID
- $obj | Add-Member -Name "OptVal" -MemberType NoteProperty -Value ([string]::Join(",",$OptVal))
- $objArr += $obj
- }
- #$optArr = $match.Groups[3].Captures | foreach {$_.Value }
- #$match.Groups[3].Captures
- #$match.Groups[2].Captures
- #$optVal = $match.Groups[5].Captures | foreach { $_.Value.ToString() }
- #$optVal
- }
- #$objArr
- $objArr | Export-Csv "DHCP.csv" -Encoding UTF8 -Delimiter ";" -NoTypeInformation
Advertisement
Add Comment
Please, Sign In to add comment