Board logo

标题: 请教DOS菜单问题 [打印本页]

作者: miscellaneous     时间: 2008-5-27 17:36    标题: 请教DOS菜单问题
因为工作原因,需要用到很多dos的小程序,如果每次用U盘进入dos再打命令执行,感觉比较麻烦,特别是一些还有好多子目录。 不知道能不能做一个dos执行的bat或者其他程序,进入dos有执行它,就能出现U盘里面程序的一个菜单(清单一样的),然后用方向键或者Tab键选择相应的程序就能执行?当然了,菜单的路径参数之类要实现写好。 不知道这个能用dos实现么?不需要一进dos就启动,因为有时候还要执行其他的东西。

作者: sqcxwl     时间: 2008-5-27 17:41
set /p

作者: 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
非常感谢 学习了