无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 2034|回复: 8
打印 上一主题 下一主题

帮忙看一下这两个批处理错在哪里啊

[复制链接]
跳转到指定楼层
1#
发表于 2008-1-6 14:19:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
因为是制作纯DOS启动盘,想用批处理制作一个启动菜单,我的设想是先建立一个人如下的菜单
显示一个主菜单,再是一个子菜单,但自己写的批处理有问题,总是改不好,希望各位大虾指教


其中一个子菜单

这是主菜单
@echo off
cls
echo baobao's disk

echo 0.Clone
echo 1.HD
echo 2.Password
echo 3.Recovery
echo 4.Filesysytem
echo 5.Info
echo 6.Ram
echo 7.CMOS
echo 8.MBR
echo 9.Others
echo q.end


choice/c:0123456789q/t:q,160
if errorlevel 0 goto Clone
if errorlevel 1 goto HD
if errorlevel 2 goto Password
if errorlevel 3 goto Recovery
if errorlevel 4 goto Filesysytem
if errorlevel 5 goto Info
if errorlevel 6 goto Ram
if errorlevel 7 goto CMOS
if errorlevel 8 goto MBR
if errorlevel 9 goto Others
if errorlevel q goto end

:Clone
call Clone.bat

:HD
call HD.bat

:Password
call Password.bat

:Recovery
call Recovery.bat

:Filesysytem
call Filesysytem.bat

:Info
call Info.bat

:Ram
call Ram.bat

:CMOS
call CMOS.bat

:MBR
call MBR.bat

:Others
call Others.bat

:end




其中一个字菜单

clone.bat
[/quote]@echo off
cls
path=x:\baobao\baobao\clone\ghost;x:\baobao\baobao\clone\pqdi;x:\baobao\baobao\clone\acronis

echo 0.Ghost
echo 1.Acronis
echo 2.PQ Driver image
echo b.Back


choice/c:012b/t:b,160
if errorlevel 0 goto Ghost
if errorlevel 1 goto Acronis
if errorlevel 2 goto PQ Driver image
if errorlevel b goto Back


:Ghost
ghost.exe
goto end

:Acronis
acronis.exe
goto end

:PQ Driver image
pqdi.exe
goto end

:Back
call baobao.bat

:end
exit


[ 本帖最后由 jsjcjsjc 于 2008-1-6 02:21 PM 编辑 ]
2#
 楼主| 发表于 2008-1-6 14:22:54 | 只看该作者
如果有其他编写的思路也请说一下,如留一个模板就最好了
回复

使用道具 举报

3#
发表于 2008-1-6 14:28:57 | 只看该作者
choice/c:0123456789q/t:q,160

为什么不空格呢
回复

使用道具 举报

4#
发表于 2008-1-6 14:33:38 | 只看该作者
CHOICE的用法:

C:\TEMP>choice.exe /?

CHOICE [/C choices] [/N] [/CS] [/T timeout /D choice] [/M text]

描述:
    该工具允许用户从选择列表选择一个项目并返回所选项目的索引。

参数列表:
   /C    choices       指定要创建的选项列表。默认列表是 "YN"。

   /N                  在提示符中隐藏选项列表。提示前面的消息得到显示,
                       选项依旧处于启用状态。

   /CS                 允许选择分大小写的选项。在默认情况下,这个工具
                       是不分大小写的。

   /T    timeout       做出默认选择之前,暂停的秒数。可接受的值是从 0
                       到 9999。如果指定了 0,就不会有暂停,默认选项
                       会得到选择。

   /D    choice        在 nnnn 秒之后指定默认选项。字符必须在用 /C 选
                       项指定的一组选择中; 同时,必须用 /T 指定 nnnn。

   /M    text          指定提示之前要显示的消息。如果没有指定,工具只
                       显示提示。

   /?                  显示帮助消息。

   注意:
   ERRORLEVEL 环境变量被设置为从选择集选择的键索引。列出的第一个选
   择返回 1,第二个选择返回 2,等等。如果用户按的键不是有效的选择,
   该工具会发出警告响声。如果该工具检测到错误状态,它会返回 255 的
   ERRORLEVEL 值。如果用户按 Ctrl+Break 或 Ctrl+C 键,该工具会返回 0
   的 ERRORLEVEL 值。在一个批程序中使用 ERRORLEVEL 参数时,将参数降
   序排列。

示例:
   CHOICE /?
   CHOICE /C YNC /M "确认请按 Y,否请按 N,或者取消请按 C。"
   CHOICE /T 10 /C ync /CS /D y
   CHOICE /C ab /M "选项 1 请选择 a,选项 2 请选择 b。"
   CHOICE /C ab /N /M "选项 1 请选择 a,选项 2 请选择 b。"
回复

使用道具 举报

5#
发表于 2008-1-6 16:59:25 | 只看该作者
原帖由 jsjcjsjc 于 2008-1-6 02:19 PM 发表
因为是制作纯DOS启动盘,想用批处理制作一个启动菜单,我的设想是先建立一个人如下的菜单
显示一个主菜单,再是一个子菜单,但自己写的批处理有问题,总是改不好,希望各位大虾指教
http://fleet1.footbig.co ...


关键错误是
:Clone
call Clone.bat
等,其后都要加上一行

goto exit


:Clone
call Clone.bat

goto exit

:HD
call HD.bat

goto exit

..................


:exit
回复

使用道具 举报

6#
 楼主| 发表于 2008-1-6 18:37:53 | 只看该作者
我把两个改成如下,原本是没有问题的,可是我发现,第二次进入主菜单时会直接进入clone.bat,并且启动了ghost
主菜单

@echo off
cls

echo baobao's disk

echo 1.Clone
echo 2.HD
echo 3.Password
echo 4.Recovery
echo 5.Filesysytem
echo 6.Ram
echo 7.MBR
echo 8.Others
echo 9.end



choice/c:123456789/t:9,160


if errorlevel 9 goto end
if errorlevel 8 goto Others
if errorlevel 7 goto MBR
if errorlevel 6 goto Ram
if errorlevel 5 goto Filesysytem
if errorlevel 4 goto Recovery
if errorlevel 3 goto Password
if errorlevel 2 goto HD
if errorlevel 1 goto Clone


:Clone
call Clone.bat
goto exit

:HD
call HD.bat
goto exit

:Password
call Password.bat
goto exit

:Recovery
call Recovery.bat

:Filesysytem
call Filesysytem.bat
goto exit

:Ram
call Ram.bat

:MBR
call MBR.bat
goto exit

:Others
call Others.bat
goto exit

:exit


clone.bat子菜单
@echo off
cls


echo 4.Ghost
echo 3.Acronis
echo 2.PQ Driver image
echo 1.Back


choice/c:1234/t:1,160
if errorlevel 4 goto Ghost
if errorlevel 3 goto Acronis
if errorlevel 2 goto PQ Driver image
if errorlevel 1 goto Back


:Ghost
cd x:\baobao\baobao\clone\ghost
ghost.exe
goto exit


:Acronis
cd x:\baobao\baobao\clone\acronis
acronis.exe
goto exit


:PQ Driver image
cd x:\baobao\baobao\clone\pqdi
pqdi.exe
goto exit


:Back
call baobao.bat
goto exit


:exit


还有就是有什么办法让它执行完一个程序后回到主菜单呢
回复

使用道具 举报

7#
 楼主| 发表于 2008-1-7 17:42:59 | 只看该作者
正确答案
@echo off
cls
echo 4.Ghost
echo 3.Acronis
echo 2.PQ Driver image
echo 1.Back
choice /n /c:1234 /t:1,90 Please select a button and wait for 90 seconds default activated 1
if errorlevel 4 goto Ghost
if errorlevel 3 goto Acronis
if errorlevel 2 goto PQ_Driver_image
if errorlevel 1 goto Back
goto exit

:Ghost
x:
cd\
cd x:\baobao\baobao\clone\ghost
ghost.exe
goto exit

:Acronis
x:
cd\
cd x:\baobao\baobao\clone\acronis
acronis.exe
goto exit

:PQ_Driver_image
x:
cd\
cd x:\baobao\baobao\clone\pqdi
pqdi.exe
goto exit

:Back
call baobao.bat
goto exit

:exit
回复

使用道具 举报

8#
发表于 2008-1-7 18:06:11 | 只看该作者
只有一点点懂,只好学习了。
回复

使用道具 举报

9#
发表于 2008-1-8 14:52:23 | 只看该作者
对于菜鸟的我来说,是复杂了。偶做个记号。等偶慢慢来看。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2025-2-21 21:44

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表