标题: 请教DOS菜单问题
[打印本页]
作者: miscellaneous
时间: 2008-5-27 17:36
标题: 请教DOS菜单问题
因为工作原因,需要用到很多dos的小程序,如果每次用U盘进入dos再打命令执行,感觉比较麻烦,特别是一些还有好多子目录。
不知道能不能做一个dos执行的bat或者其他程序,进入dos有执行它,就能出现U盘里面程序的一个菜单(清单一样的),然后用方向键或者Tab键选择相应的程序就能执行?当然了,菜单的路径参数之类要实现写好。
不知道这个能用dos实现么?不需要一进dos就启动,因为有时候还要执行其他的东西。
作者: sqcxwl
时间: 2008-5-27 17:41
作者: sqcxwl
时间: 2008-5-27 17:42
比如
@echo off
set /p xz1="请选择:(Y,N)"
if exist %xz1%=="Y" goto ks
if exist %xz1%=="N" goto end
作者: miscellaneous
时间: 2008-5-27 18:04
感谢楼上的兄弟解答,也许我说得不清楚吧,按照你说的好像没反应
我现在是有一个U盘启动盘,在U盘下面有RST.exe,Ghost11.exe,aflash2.exe几个DOS程序。将电脑选择从U盘启动进入DOS后,我想输入一个批处理命令,然后会出来一个菜单界面,上面列出RST,Ghost,aflash;然后我用方向键或Tab键选中想执行的菜单,回车,然后就会执行相应的Dos程序。
我在Dos按照你上面的执行,没有什么反应~
作者: bat-zw
时间: 2008-5-27 18:49
集自动判断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! [!n!] %%~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 "[^0-9]">nul&&goto wrong
start "" "!_%select%!"&goto :eof
:wrong
echo 输入有误,请正确输入!&ping /n 2 127.1>nul&goto set
唯一就是不能用于纯dos下。
作者: knoppix7
时间: 2008-5-27 19:30
输入文件夹的头几个字母.
然后按几下tab..
可以方便一点
ps:可以直接把他们的路径添加到PATH里
作者: hulongzhuo
时间: 2008-5-28 10:37
用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的三个文件,方能运行.
作者: hulongzhuo
时间: 2008-5-28 10:43
作者: miscellaneous
时间: 2008-5-28 16:00