$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() }