[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 neorobin 于 2012-5-10 00:31 编辑

回复 1# xzwcn
  1. @echo off & setlocal enabledelayedexpansion
  2. echo,请输入后六位 MAC 地址 (HEX^):
  3. set /p "PIN=Input the last 6 digits of MAC Address(HEX): "
  4. echo,您输入的后六位 MAC 地址是 !PIN!
  5. echo,Last 6 digits of MAC Address(HEX^) are: !PIN!
  6. set "accum=0"
  7. set /a "pinO=0x!pin! + 10000000, pin=0x!pin! %% 10000000"
  8. :wps_pin_checksum
  9. if !pin! neq 0 (
  10.   set /a "accum += 3 * (pin %% 10), pin /= 10, accum += pin %% 10, pin /= 10"
  11.   goto :wps_pin_checksum
  12. )
  13. set /a "wps_pin_checksum=(10 - accum %% 10) %% 10"
  14. echo,WPS PIN is: !pinO:~-7!!wps_pin_checksum!
  15. pause
复制代码
1

评分人数

TOP

回复 5# xzwcn

你给个有问题的示例 MAC, C 和 Bat 各输出什么

TOP

回复 7# xzwcn
  1. @echo off & setlocal enabledelayedexpansion
  2. :input
  3. echo,请输入后六位 MAC 地址 (HEX^):
  4. set /p "PIN=Input the last 6 digits of MAC Address(HEX): "
  5. set "PIN=!PIN: =!"
  6. if "!PIN:~6!" neq "" (echo,输入超过 6 位) & goto :input
  7. echo,您输入的后六位 MAC 地址是 !PIN!
  8. echo,Last 6 digits of MAC Address(HEX^) are: !PIN!
  9. set "accum=0"
  10. set /a "pinO=0x!pin! + 10000000, pin=0x!pin! %% 10000000"
  11. :wps_pin_checksum
  12. if !pin! neq 0 (
  13.   set /a "accum += 3 * (pin %% 10), pin /= 10, accum += pin %% 10, pin /= 10"
  14.   goto :wps_pin_checksum
  15. )
  16. set /a "wps_pin_checksum=(10 - accum %% 10) %% 10"
  17. echo,WPS PIN is: !pinO:~-7!!wps_pin_checksum!
  18. set "comd="
  19. set /p "comd=按 X 键再回车退出, 否则继续查询: "
  20. if /i "%comd%"=="x" (exit) else goto :input
复制代码
1

评分人数

TOP

broly 说的确是实情, 谢谢

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

TOP

返回列表