标题: [其他] [已解决]批处理怎么做一个按上下键选择的菜单? [打印本页]
作者: ANSL 时间: 2022-3-30 08:56 标题: [已解决]批处理怎么做一个按上下键选择的菜单?
本帖最后由 ANSL 于 2022-3-30 21:02 编辑
我是bat新手才学2个月,我想做一个类似于Windows xp的操作系统选择菜单的那种,谢谢
作者: idwma 时间: 2022-3-30 16:43
- @echo off
- set i=1
- :l
- cls
- if %i%==1 set /p "=>" <nul
- echo a
- if %i%==2 set /p "=>" <nul
- echo b
- if %i%==3 set /p "=>" <nul
- echo c
-
- for /f %%i in ('powershell "[int][Console]::ReadKey(1).key"') do (
- if not %%i==13 (
- if %%i==38 if not %i%==1 set /a i-=1
- if %%i==40 if not %i%==3 set /a i+=1
- goto :l
- )
- )
- echo %i%
- pause
复制代码
作者: ANSL 时间: 2022-3-30 21:00
2楼,代码我看到了很好用,谢谢!
作者: for_flr 时间: 2022-4-2 17:19
- @echo off
- setlocal enabledelayedexpansion
- for /f %%i in ('echo;prompt $h^|cmd') do set "b=%%i"
- for /f "delims=U" %%i in ('cmd/u/c echo;唉') do set "t=%%i"
- set "s= "
- for /l %%a in (1,1,62) do set "bs=!bs!!b!"
-
- set c1=选项1
- set c2=选项2
- set c3=选项3
- set c4=选项4
- set cn=4
- set /a i=cn*1000
- set mod=0
-
- :l
- if %mod%==0 (echo;[%c1%]) else echo;%c1%%s%
- if %mod%==1 (echo;[%c2%]) else echo;%c2%%s%
- if %mod%==2 (echo;[%c3%]) else echo;%c3%%s%
- if %mod%==3 (echo;[%c4%]) else echo;%c4%%s%
-
- for /f %%i in ('powershell "[Console]::ReadKey(1).key"') do (
- if /i %%i neq enter (
- if /i %%i==uparrow set /a i-=1
- if /i %%i==downarrow set /a i+=1
- set/a mod=i%%cn
- 2>nul echo;!t!!bs! &set /p=!b!<nul
- goto :l
- )
- )
- echo %mod%
- pause
复制代码
我也来学习模仿一个。
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |