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

[其他] [已解决]批处理怎么做一个按上下键选择的菜单?

本帖最后由 ANSL 于 2022-3-30 21:02 编辑

我是bat新手才学2个月,我想做一个类似于Windows xp的操作系统选择菜单的那种,谢谢

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f %%i in ('echo;prompt $h^|cmd') do set "b=%%i"
  4. for /f "delims=U" %%i in ('cmd/u/c echo;唉') do set "t=%%i"
  5. set "s=  "
  6. for /l %%a in (1,1,62) do set "bs=!bs!!b!"
  7. set c1=选项1
  8. set c2=选项2
  9. set c3=选项3
  10. set c4=选项4
  11. set cn=4
  12. set /a i=cn*1000
  13. set mod=0
  14. :l
  15. if %mod%==0 (echo;[%c1%]) else echo;%c1%%s%
  16. if %mod%==1 (echo;[%c2%]) else echo;%c2%%s%
  17. if %mod%==2 (echo;[%c3%]) else echo;%c3%%s%
  18. if %mod%==3 (echo;[%c4%]) else echo;%c4%%s%
  19. for /f %%i in ('powershell "[Console]::ReadKey(1).key"') do (
  20.     if /i %%i neq enter (
  21.         if /i %%i==uparrow  set /a i-=1
  22.         if /i %%i==downarrow  set /a i+=1
  23.         set/a mod=i%%cn
  24.         2>nul echo;!t!!bs! &set /p=!b!<nul
  25.         goto :l
  26.     )
  27. )
  28. echo %mod%
  29. pause
复制代码
我也来学习模仿一个。

TOP

2楼,代码我看到了很好用,谢谢!

TOP

  1. @echo off
  2. set i=1
  3. :l
  4. cls
  5. if %i%==1 set /p "=>" <nul
  6. echo a
  7. if %i%==2 set /p "=>" <nul
  8. echo b
  9. if %i%==3 set /p "=>" <nul
  10. echo c
  11. for /f %%i in ('powershell "[int][Console]::ReadKey(1).key"') do (
  12.     if not %%i==13 (
  13.         if %%i==38 if not %i%==1 set /a i-=1
  14.         if %%i==40 if not %i%==3 set /a i+=1
  15.         goto :l
  16.     )
  17. )
  18. echo %i%
  19. pause
复制代码
3

评分人数

TOP

返回列表