unknown

$path      = "C:\work\data.bin"
$recordLen = 100
$offset    = 20
$length    = 5
 
$fs = [System.IO.File]::OpenRead($path)
$buf = New-Object byte[] $recordLen
$recNo = 0
 
try {
    while (($read = $fs.Read($buf, 0, $recordLen)) -eq $recordLen) {
        $recNo++
 
        $invalid = $false
 
        for ($i = $offset; $i -lt ($offset + $length); $i++) {
            if ($buf[$i] -lt 0x30 -or $buf[$i] -gt 0x39) {
                $invalid = $true
                break
            }
        }
 
        if ($invalid) {
            Write-Host "レコード:$recNo"
        }
    }
}
finally {
    $fs.Dispose()
}