Board logo

标题: [系统相关] 求助:批处理如何判断字符串长度为8值63位?(用于密码判断) [打印本页]

作者: wangteng_13    时间: 2014-1-23 13:20     标题: 求助:批处理如何判断字符串长度为8值63位?(用于密码判断)

想做一个开启系统自带WIFI的批处理,卡在了设置WIFI密码的位置,设置WIFI密码需要8至63位密码
不知道应该怎样判断输入的字符串长度大于等于8,小于等于63位?


:s2
cls
echo.
echo             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
echo             请输入虚拟WiFi密码,然后按回车
echo             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
echo.
:choice
set /p choice=              请输入8至63位字符的密码:
if %choice% geq 8 ( if %choice% leq 63 goto ok)
echo 输入错误!!请输入8至63位字符的密码
echo 请按任意键重新输入 &pause>nul&cls
goto choice
k
IF NOT "%choice%"=="" SET choice=%choice:~0,63%
IF NOT "%choice%"=="" netsh wlan set hostednetwork key="%choice%"
echo.
echo              已成功更改虚拟WiFi密码为:"%choice%"!
echo                        任意键返回主菜单
echo               你可在后面的菜单中设置ID及密码
pause >nul
goto menu
作者: mxxcgzxxx    时间: 2014-1-23 17:26

可以用 findstr 来过滤请查找相关指令说明,http://www.verycd.com/topics/2875050/
作者: xxpinqz    时间: 2014-1-23 19:44

可以改成这样试试:
  1. :s2
  2. cls
  3. echo.
  4. echo             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  5. echo             请输入虚拟WiFi密码,然后按回车
  6. echo             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  7. echo.
  8. set "error="
  9. set /p choice=              请输入8至63位字符的密码:
  10. if "%choice:~7%"=="" set error=.
  11. if not "%choice:~63%"=="" set error=.
  12. if defined error (
  13. echo 输入错误!!请输入8至63位字符的密码
  14. pause
  15. goto :s2
  16. )
  17. netsh wlan set hostednetwork key="%choice%"
  18. echo.
  19. echo              已成功更改虚拟WiFi密码为:"%choice%"!
  20. echo                        任意键返回主菜单
  21. echo               你可在后面的菜单中设置ID及密码
  22. pause >nul
  23. goto menu
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2