求批处理高手过来帮忙写个批处理,谢谢!

来源:百度知道 编辑:UC知道 时间:2024/06/06 02:59:08
求批处理高手过来帮忙写个批处理,谢谢!

做为80后,常常为了这顿饭要做什么菜而发愁。所以我想做个批处理自助选择菜单《随机菜》,所以盗用了体育彩票生成器 要做个修改请高手来帮忙 如下

@echo off&color 5f&mode con cols=50 lines=8
title 自助炒菜生成器
if not "%~1"=="" goto loop
set /a a=100,
setlocal EnableDelayedExpansion
set /p b=请输入您要做几道菜(默认回车为3):&cls
:loop
if not "%~1"=="" (
for /l %%a in (1 1 %a%) do call echo %%random%% %%a
goto :eof
) else (
for /f "tokens=2" %%i in ('"%~0" n^|sort /r') do (
set /a b-=1
if !b! geq 0 set str=!str! %%i
)
)
echo\&echo 选择出的号码为: %str%
pause>nul

加入我的菜单有100道菜,可以自己选择要做几道菜。问题是如何才能够在批处理上面显示出菜的名字而不是100选几的数字? 谢谢!!!

@echo off&color 5f&mode con cols=50 lines=8
:begin
cls
set /p dishnum=请输入您要做几道菜(默认回车3):
rem #####设置默认菜数#####
if not defined dishnum set dishnum=3
rem ########菜单##########
set dish=凉拌黄瓜,红烧茄,番茄炒鸡蛋,瓜丝儿,山鸡丁儿,拌海蜇,龙须菜,炝冬笋,玉兰片,浇鸳鸯,烧鱼头,烧槟子,烧百合,炸豆腐,炸面筋,糖熘儿,糖焖莲子,杏仁酪,小炒螃蟹,海鲫鱼,黄花鱼,扒海参,扒燕窝,扒鸡腿儿,扒鸡块儿
cls
set rsh=
set i=0
:loop
set /a numof=%random%%%25+1
for /f "tokens=%numof% delims=," %%i in ("%dish%") do set rsh=%rsh% %%i
set /a i+=1
if %i% lss %dishnum% goto loop
echo 以下便是为您随机抽取你要做的%dishnum%道菜:
echo %rsh%
rem
set /p select=请选择操作(Y,继续选菜;N,退出):
if /i %select%==Y goto begin else (
call exit
)
rem 这是我写的,你可以参考一下,不过用随机数可能出现重复的菜,体彩生成器肯定是有重复的号码的!

我又改进了一下,这下绝对不会选到重复的菜了,
代码如下:
@echo off
title 自助炒菜生成器
:begin
color 5f
cls
set dish=,凉拌黄瓜,红烧茄,番茄炒鸡蛋,瓜丝儿,山鸡丁儿,拌海蜇,龙须菜,炝冬笋,玉兰片,浇鸳鸯,烧鱼头,烧槟子,烧百合,

炸豆腐,炸面筋,糖熘儿,糖焖莲子,杏仁酪,小炒螃蟹,