broly 说的确是实情, 谢谢
还好, 我空闲时间稍多, 另外对这个 PIN 的计算有点兴趣, 算法并不复杂, 楼主在论坛里稍许学习, 自己做出来不难.- @echo off & setlocal enabledelayedexpansion
- :input
- set /p "MACS=请输入后六位 MAC 地址(多组用半角空格或半角逗号分隔): "
-
- echo, # MAC WPS_PIN
- set "i=100"
- for %%M in (!MACS!) do (
- set /a "i+=1"
- set "MAC=%%M"
- if "!MAC:~6!" neq "" (echo,第 !i:~-2! 个超过 6 位) & goto :input
- call :WPS_PIN WPS_PIN !MAC!
- echo,!i:~-2! !MAC! !WPS_PIN!
- )
-
- set "comd="
- set /p "comd=按 X 键再回车退出, 否则继续查询: "
- if /i "%comd%"=="x" (exit) else goto :input
- exit
-
- :WPS_PIN WPS_PIN pin pinO acc
- setlocal
- if "%3"=="" set /a "pinO=0x%2 + 10000000, pin=0x%2 %% 10000000"
- if "%3"=="" endlocal & (call :WPS_PIN %1 %pin% %pinO:~-7% 0) & exit /b
-
- if %2 equ 0 set /a "checksum=(10 - %4 %% 10) %% 10"
- if %2 equ 0 endlocal & set "%1=%3%checksum%" & exit /b
-
- set/a"pin=%2,acc=%4,acc+=3*(pin %% 10),pin/=10,acc+=pin %% 10,pin/=10"
- endlocal & (call :WPS_PIN %1 %pin% %3 %acc%) & exit /b
- exit /b
复制代码
|