中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-08 20:13
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 请教DOS菜单问题 查看 987 回复 8
楼 主 请教DOS菜单问题 发表于 2008-05-27 17:36 ·  中国 上海 浦东新区 电信
新手上路
积分 8
发帖 3
注册 2008-05-27 17:05
18年会员
UID 119855
性别 男
状态 离线
因为工作原因,需要用到很多dos的小程序,如果每次用U盘进入dos再打命令执行,感觉比较麻烦,特别是一些还有好多子目录。

不知道能不能做一个dos执行的bat或者其他程序,进入dos有执行它,就能出现U盘里面程序的一个菜单(清单一样的),然后用方向键或者Tab键选择相应的程序就能执行?当然了,菜单的路径参数之类要实现写好。

不知道这个能用dos实现么?不需要一进dos就启动,因为有时候还要执行其他的东西。
2 发表于 2008-05-27 17:41 ·  中国 北京 鹏博士BGP
初级用户
积分 24
发帖 9
注册 2008-03-24 20:23
18年会员
UID 113901
性别 男
状态 离线
set /p
3 发表于 2008-05-27 17:42 ·  中国 北京 鹏博士BGP
初级用户
积分 24
发帖 9
注册 2008-03-24 20:23
18年会员
UID 113901
性别 男
状态 离线
比如

@echo off
set /p xz1="请选择:(Y,N)"
if exist %xz1%=="Y" goto ks
if exist %xz1%=="N" goto end
4 发表于 2008-05-27 18:04 ·  中国 上海 浦东新区 电信
新手上路
积分 8
发帖 3
注册 2008-05-27 17:05
18年会员
UID 119855
性别 男
状态 离线
感谢楼上的兄弟解答,也许我说得不清楚吧,按照你说的好像没反应

我现在是有一个U盘启动盘,在U盘下面有RST.exe,Ghost11.exe,aflash2.exe几个DOS程序。将电脑选择从U盘启动进入DOS后,我想输入一个批处理命令,然后会出来一个菜单界面,上面列出RST,Ghost,aflash;然后我用方向键或Tab键选中想执行的菜单,回车,然后就会执行相应的Dos程序。

我在Dos按照你上面的执行,没有什么反应~
5 发表于 2008-05-27 18:49 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
18年会员
UID 112398
性别 男
状态 离线
集自动判断u盘盘符、判断是否插入、手动选择执行文件于一体的批处理:

@echo off&setlocal enabledelayedexpansion
for /f "delims=驱动器:\" %%i in ('fsutil fsinfo drives^|more') do fsutil fsinfo drivetype %%i:|findstr "移动">nul&&set str=%%i
if exist %str%: (
for /f "delims=" %%i in ('dir /s /a-d /b %str%:\*.exe') do (
set /a n+=1&set _!n!=%%i&set var=!var! %%~nxi
)
) else (
echo 经检测U盘未插入或未就绪,请按键退出程序。
pause>nul&goto :eof
)
:set
cls&echo !var:~1!
echo.
echo 请选择要运行的程序序号。
echo.
set /p select=在此输入:
if "%select%"=="" goto set
echo %select%|findstr "">nul&&goto wrong
start "" "!_%select%!"&goto :eof
:wrong
echo 输入有误,请正确输入!&ping /n 2 127.1>nul&goto set

唯一就是不能用于纯dos下。
批处理之家新域名:www.bathome.net
6 发表于 2008-05-27 19:30 ·  中国 北京 联通
银牌会员
★★★
积分 1,287
发帖 634
注册 2007-05-02 15:06
19年会员
UID 87277
性别 男
来自 cmd.exe
状态 离线
输入文件夹的头几个字母.
然后按几下tab..
可以方便一点


ps:可以直接把他们的路径添加到PATH里
7 发表于 2008-05-28 10:37 ·  中国 广东 东莞 电信
中级用户
★★
积分 294
发帖 135
注册 2007-03-09 14:47
19年会员
UID 81212
性别 男
状态 离线
用WBAT吧,这个很好的

编写P处理存为DOS.BAT
@echo off
:top
cls
call w.bat box @dos.bat:menu
if "%?%"=="1" goto RST
if "%?%"=="2" goto GHOST
if "%?%"=="3" goto AFLASH
goto exit
:menu
============= 请选择 =============
[1.RST ]
[2.GHSOT ]
[3.AFLASH]
::

:RST
rst.exe
goto exit

:GHOST
ghost11.exe
goto exit

:AFLASH
aflash2.exe
goto exit

:exit

另外必须要有WBAT的三个文件,方能运行.
8 发表于 2008-05-28 10:43 ·  中国 广东 东莞 电信
中级用户
★★
积分 294
发帖 135
注册 2007-03-09 14:47
19年会员
UID 81212
性别 男
状态 离线
9 发表于 2008-05-28 16:00 ·  中国 上海 浦东新区 电信
新手上路
积分 8
发帖 3
注册 2008-05-27 17:05
18年会员
UID 119855
性别 男
状态 离线
非常感谢
学习了
论坛跳转: