// TODO 待处理
1 # powershell 编写的某些校验 2 3 function listChecks() { 4 write-host '可用的校验'; 5 write-host 'CRC - 循环冗余校验'; 6 return '-- done'; 7 } 8 9 # 字节数组 CRC, 不知道是不是符合CRC定义10 function crcCheck($byteArray) {11 if ($byteArray -eq $null) {12 return 'crc - Null param.';13 }14 15 $result = 0xFFFF;16 17 for ($i = 0; $i -lt $byteArray.length; $i++ ) {18 $result = $result -bxor $byteArray[$i];19 20 for ($j = 0; $j -lt 8; $j++) {21 if (($result % 2) -eq 1) {22 $result = [System.Decimal]::ToInt32($result / 2);23 $result = 0xA001 -bxor $result24 } else {25 $result = [System.Decimal]::ToInt32($result / 2);26 }27 }28 }29 30 $crch = [System.Decimal]::ToInt32($result / 256);31 $crcl = $result % 256;32 return [System.String]::Format("High, Low = {0}, {1}", $crch.toString("X2"), $crcl.toString("X2"));33 }34 35 # 脚本36 # args[1] : byte array37 switch($args[0]) {38 { $_ -eq 'crc'} {crcCheck $args[1] | write-host ; break}39 default {write-host "没有与 [" $args[0] "] 相关的实现" ; break}40 }
--------------