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

[其他] [已解决]批处理怎么做一个可以上下移动的选择框?

本帖最后由 ANSL 于 2022-4-6 09:32 编辑

选中前[ ]
选中后[X]
按空格选中
再按一下取消选中
选完按Enter
有三个选择框按上下迁换到不同的选择框
选第1个显示1
选第2个显示2
选第3个显示3
2

评分人数

本帖最后由 ANSL 于 2022-4-2 19:19 编辑

回复 2# idwma我想加个防空选,未选中的样式改成<第一个[]>
选中样式:<第一个[X]>
就是把选中时的>1[]
改成<1[]>
如果空选显示 你空选了!
而且只能选一个!
如多选显示 你多选了!
只能选一个
选第1个显示1
选第2个显示2
选第3个显示3
谢谢大佬!

TOP

回复 7# idwma
确实有点矛盾
假如你要用多选的选择框启动程序,选1启动1.bat选2启动2.bat选3启动3.bat(可多选)
假如你多选了2和3同时启动2.bat和3.bat
如果你空选了提就示你空选了!这种怎么做?

TOP

本帖最后由 ANSL 于 2022-4-4 18:06 编辑

回复 9# idwma怎么回事?
只要多选回显就会关闭@ echo off没用

TOP

回复 14# idwma
  1. @echo off&setlocal enabledelayedexpansion
  2. set i=0
  3. :l
  4. cls
  5. if %i%==1 set /p "=>" <nul
  6. echo [%_s1%]a
  7. if %i%==2 set /p "=>" <nul
  8. echo [%_s2%]b
  9. if %i%==3 set /p "=>" <nul
  10. echo [%_s3%]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.         if %%i==32 if defined _s!i! (set _s!i!=) else (set _s!i!=x)
  16.         goto :l
  17.     )
  18. )
  19. echo %i%
  20. for /f "delims==" %%i in ('set _s') do (
  21. set f=1
  22. if %%i==_s1 (1.bat) else if %%i==_s2 (2.bat) else if %%i==_s3 (3.bat)
  23. )
  24. if not defined f echo 空
复制代码

TOP

本帖最后由 ANSL 于 2022-4-5 18:43 编辑

回复 20# idwma
1.bat

  1. @ echo off
  2. echo running 1.bat
  3. pause
  4. exit
复制代码


2.bat
  1. @ echo off
  2. echo running 2.bat
  3. pause
  4. exit
复制代码

3.bat
  1. @ echo off
  2. echo running 3.bat
  3. pause
  4. exit
复制代码

TOP

返回列表