[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
看了这篇彩色显示,撸了一个高亮单选菜单http://www.bathome.net/redirect.php?goto=findpost&pid=252648&ptid=61903
测试的是win11系统
  1. @echo off & cd /d "%~dp0"
  2. call :get_menu "menu-item-1" "menu-item-2" "menu-item-3" "menu-item-4" "menu-item-5"
  3. echo 选择了第%errorlevel%项
  4. pause&exit
  5. REM 选择菜单,参数 菜单列表 ...
  6. :get_menu
  7. set "_n=0"
  8. for %%i in (%*) do set /a "_n+=1"
  9. if "%_cur%"=="" set "_cur=1"
  10. call :show_menu %_cur% %*
  11. echo.
  12. choice /C "WSY" /N /M "WS切换,Y确定"
  13. if "%errorlevel%"=="3" exit /b %_cur%
  14. if "%errorlevel%"=="2" if %_cur% lss %_n% set /a "_cur+=1"
  15. if "%errorlevel%"=="1" if %_cur% gtr 1 set /a "_cur-=1"
  16. cls&goto :get_menu %*
  17. REM 显示菜单
  18. :show_menu
  19. set /a "_i=%~1,_j=1" & shift /1
  20. :L1
  21. if "%~1"=="" goto :eof
  22. if "%_i%"=="%_j%" ( call :show_str 0 255 0 %~1 ) else ( call :show_str 255 255 255 %~1)
  23. shift /1 & set /a "_j+=1" & goto :L1
  24. REM 显示彩色字符串,参数 R,G,B,str
  25. :show_str
  26. echo.[38;2;%~1;%~2;%~3m%~4
  27. goto :eof
复制代码
1

评分人数

TOP

多选菜单
  1. @echo off & cd /d "%~dp0"
  2. setlocal enabledelayedexpansion
  3. call :get_menu "menu-item-1" "menu-item-2" "menu-item-3" "menu-item-4" "menu-item-5"
  4. echo 选择了%_ret%项
  5. pause&exit
  6. REM 多选择菜单
  7. REM [返回值 _ret]
  8. REM [参数 菜单列表 ...]
  9. :get_menu
  10. set "_n=0"
  11. for %%i in (%*) do set /a "_n+=1"
  12. if "%_cur%"=="" set "_cur=1"
  13. call :show_menu %_cur% %*
  14. echo.
  15. choice /C "WSAY" /N /M "WS切换,A标记,Y确定 "
  16. if "%errorlevel%"=="4" ( set "_ret=" & (for /f "tokens=2 delims==_" %%i in ('set _n_ 2^>nul') do set "_ret=!_ret! %%i") & goto :eof)
  17. if "%errorlevel%"=="3" if "!_n_%_cur%!"=="1" ( set "_n_%_cur%=" ) else ( set "_n_%_cur%=1" )
  18. if "%errorlevel%"=="2" if %_cur% lss %_n% set /a "_cur+=1"
  19. if "%errorlevel%"=="1" if %_cur% gtr 1 set /a "_cur-=1"
  20. cls&goto :get_menu %*
  21. REM 显示菜单
  22. REM [参数 选择项 菜单列表 ...]
  23. :show_menu
  24. set /a "_i=%~1,_j=1" & shift /1
  25. :L1
  26. if "%~1"=="" goto :eof
  27. if "%_i%"=="%_j%" ( call :show_str 255 0 0 %~1 & goto :L2)
  28. if "!_n_%_j%!"=="1" ( call :show_str 0 255 0 %~1 & goto :L2)
  29. call :show_str 255 255 255 %~1
  30. :L2
  31. shift /1 & set /a "_j+=1" & goto :L1
  32. REM 显示彩色字符串
  33. REM [参数 R,G,B,str]
  34. :show_str
  35. echo.[38;2;%~1;%~2;%~3m%~4
  36. goto :eof
复制代码

TOP

返回列表