Guest User

dhcp scope options parsing

a guest
Sep 2nd, 2013
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. cls
  2. $file = Get-Content "DHCP_show_OptionValue.txt" | Out-String
  3.  
  4. #$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)+"
  5. $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]+)+)+"
  6.  
  7. $regex = [regex]::Matches($file, $regexStr, [System.Text.RegularExpressions.RegexOptions]::Multiline -bor [System.Text.RegularExpressions.RegexOptions]::IgnoreCase)
  8.  
  9. $objArr = @()
  10. foreach($match in $regex){
  11.     #$scope = $match.Groups[1].Value
  12.     $ScopeName = $match.Groups[1].value
  13.    
  14.     foreach($capt in $match.Groups[2].Captures){
  15.         $optID = [regex]::Match($capt.Value, "OptionId : (\d+)").Groups[1].Value
  16.        
  17.         $OptVal = [regex]::Matches($capt.Value, "Option Element Value = ([^\r\n]+)", [System.Text.RegularExpressions.RegexOptions]::Multiline) | foreach {$_.Groups[1].Value}
  18.         $obj = New-Object System.Object
  19.         $obj | Add-Member -Name "ScopeName" -MemberType NoteProperty -Value $ScopeName
  20.         $obj | Add-Member -Name "OptID" -MemberType NoteProperty -Value $optID
  21.         $obj | Add-Member -Name "OptVal" -MemberType NoteProperty -Value ([string]::Join(",",$OptVal))
  22.         $objArr += $obj
  23.     }
  24.    
  25.     #$optArr = $match.Groups[3].Captures | foreach {$_.Value }
  26.    
  27.    
  28.     #$match.Groups[3].Captures
  29.     #$match.Groups[2].Captures
  30.     #$optVal = $match.Groups[5].Captures | foreach {        $_.Value.ToString() }
  31.     #$optVal
  32.    
  33. }
  34. #$objArr
  35. $objArr | Export-Csv "DHCP.csv" -Encoding UTF8 -Delimiter ";" -NoTypeInformation
Advertisement
Add Comment
Please, Sign In to add comment