// 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 $result 24 } 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 array 37 switch($args[0]) { 38 {$_ -eq 'crc'} {crcCheck $args[1] | write-host ; break} 39 default {write-host "没有与 [" $args[0] "] 相关的实现" ; break} 40 }
--------------