2017-10-11 1 views
-1

저는 powershell 스크립트를 사용하여 ASCII 형식의 SNMP OID 출력을 char로 변환하고 있습니다. 텍스트 파일에서 더 많은 행을 변환 할 때 문제가 발생하며 몇 줄만 처리 할 수 ​​있습니다. 만약 내가 더 많은 라인을 추가한다면, 그것은 단지 몇 가지를 처리합니다. 내 스크립트에서 문제가 어디에 있는지 확인할 수 없습니다. 문제가있는 위치에 대한 지침을 찾고 있습니다.Powershell 스크립트는 모든 행을 처리하지 않고 몇 줄만 처리합니다.

PowerShell 스크립트는 스크립트가 사용

$FileName = "C:\LBOIDOUTSORT.txt" 
if (Test-Path $FileName) { 
    Remove-Item $FileName 
} 
Get-Content "C:\LBOIDOUT.txt"| Sort-Object | get-unique >> "C:\LBOIDOUTSORT.txt" 
$RawData0 = Get-Content "C:\LBOIDOUTSORT.txt" -ReadCount 1000 
$parentarray = @() 
$parentarray += "URL Name,Server Name, IPAdress" 
foreach ($RawDataline in $RawData0) { 
    $rawinfo = $RawDataline -replace ("ltmPoolMemberTable\.ltmPoolMemberEntry\.ltmPoolMemberAddr\.|%255255| OCTET STRING- \(ascii\): | ") 
    $rawinfo = $rawinfo -split ':' 
    $rawserverip = $rawinfo[1] 
    $rawurlarray = $rawinfo[0] -split '\.' 
    $temparray = @() 
    foreach ($rawurlarrayvalue in $rawurlarray) { 
     $oid = [int]$rawurlarrayvalue 
     if (($oid -gt 44) -and ($oid -le 128)) { 
      $oid = $oid 
     } 
     else { 
      $oid = 32 
     } 
     $temparray += [char[]]$oid 
    } 
    $tempvalue = -join $temparray 
    $childarray = $tempvalue -split '/' 
    $servername = ($childarray[4] -replace " ") 
    $urlserverip = ($childarray[2] -replace" ") + "," + $servername+","+$rawserverip 
    $parentarray += $urlserverip 
} 
$parentarray 

샘플 텍스트 파일 내용, 아래에 주어진.

ltmPoolMemberTable.ltmPoolMemberEntry.ltmPoolMemberAddr.66.47.66.65.66.67.68.69.66.47.70.71.72.73.74.75.76.66.47.66.65.66.67.68.69.66.47.70.71.72.73.74.75.76 : OCTET STRING에 (ASCII) : 10.0.255.9 % 255255 ltmPoolMemberTable.ltmPoolMemberEntry.ltmPoolMemberAddr.66.47.66.65.66.67.68.69.66.47.70.71.72.73.74.75.76.66.47.66.65.66.67.68.69.64.7.70.71.72.73.74.75.76 : OCTET STRING- (아스키) : 10.0.255.9 % 255255 ltmPoolMemberTable.ltmPoolMemberEntry.ltmPoolMemberAddr.66.47.66.65.66.67.67.6.7.675.66.67.68.69.66.47.70.71.72.73.74.75.76 : OCTET STRING- (아스키) : 10.0.255.9 % 255255 ltmPoolMemberTable.ltmPoolMemberEntry.ltmPoolMemberAddr.66.47.66.65.66.67.67.67.64.70.76.66.47.66.65.66.67.68.69.66.47.70.71.72.73.74 .75.76 : 오케스트라 문자열 - (asci i) : 10.0.255.9 % 255255 ltmPoolMemberTable.ltmPoolMemberEntry.ltmPoolMemberAddr.66.47.66.65.66.67.68.69.66.47.70.71.72.73.74.75.76.66.47.66.65.66.67.68.69.66.47.70.71.72.73.74.75.76 : OCTET STRING- (ascii) : 10.0.255.9 % 255255

위의 내용을 텍스트 파일 내에 여러 번 복사하면 문제가 발생합니다.

안부, 레쉬

+0

Google의 1.3.6.1.4.1.3375.2.2.5.3.2.1.3은 모든 정보를 제공합니다. –

답변

0

나는 라인 아래에서 -readcount 매개 변수를 제거한 후 문제를 해결할 수 있었다.

올드 라인

$RawData0 = Get-Content "C:\LBOIDOUTSORT.txt" -ReadCount 1000 

수정 된 라인

$RawData0 = Get-Content "C:\LBOIDOUTSORT.txt" 

이 문제를 해결.

관련 문제