中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: 我的代码哪里出错了啊? 上一主题 | 下一主题
xiaoyunwang
高级用户




积分 939
发帖 374
注册 2007-10-17
来自 湖南张家界
状态 离线
『楼 主』:  我的代码哪里出错了啊?

其中dic.dic内容为:
-------------------------------------------------------------------------------
:_driver "加载/卸载设备驱动" [x]

提示:如果你想要加载第三方驱动,请将驱动文件拷贝到内存盘~%ramd%\drivers\~
       下,(如果文件名扩展名为.exe或.com或.sys可以不输入扩展名),点击
       浏览将遍历 ~%ramd%\drivers\~ 目录选择驱动文件.
      
┏【请输入文件名】━━━━━━━━━━━━━━━━━┓│──────
┃                                                  ┃│ [(&Y)确定]
┃ 文件名 : [$ sfile                 ]    [(&L)浏览]┃│  
┃ ------------------------------------             ┃│ [(&Q)取消]  
┗━━━━━━━━━━━━━━━━━━━━━━━━━┛│
┏【选项】━━━━━━━━━━━━━━┓┏【操作】━┓│ [(&H)帮助]
┃                                    ┃┃          ┃│──────
┃ [!]参数: [$ spr                 ] ┃┃ [.]加载  ┃│
┃ ---------------------------------- ┃┃--------- ┃│
┃ [!]光驱: 指定光驱名 [$ scd      ] ┃┃ [.]卸载  ┃│  
┃ ---------------------------------- ┃┃--------- ┃│
┃ [!]强制为设备驱动                  ┃┗━━━━━┛│
┃ -----------------------------------┃              │ 按 ~ESC~取消
┗━━━━━━━━━━━━━━━━━━┛              │──────
::
-----------------------------------------------------------------------------
:_dr_help
#                      加载与卸载设备驱动帮助                           ^

+ 例如以 gcdrom.sys 为例加载 SATA 光驱设备驱动, 有些设备驱动需要~强制
   为设备驱动~才能加载成功,例如duse.exe。当然~gcdrom.sys~不需要。
   
┏【请输入文件名】━━━━━━━━━━━━━━━━━┓│──────
┃                                                  ┃│ [(&Y)确定]
┃ 文件名:[gcdrom.sys                ] [(&L)浏览...]┃│  
┃ ------------------------------------             ┃│ [(&Q)取消]  
┗━━━━━━━━━━━━━━━━━━━━━━━━━┛│
┏【选项】━━━━━━━━━━━━━━┓┏【操作】━┓│ [(&H)帮助]
┃                                    ┃┃          ┃│──────
┃ [v]参数: [/d:sata-cd            ] ┃┃
  • 加载  ┃│
    ┃ ---------------------------------- ┃┃--------- ┃│
    ┃ [v]光驱: 指定光驱名 [sata-cd    ] ┃┃ [ ]卸载  ┃│  
    ┃ ---------------------------------- ┃┃--------- ┃│
    ┃ [ ]强制为设备驱动                  ┃┗━━━━━┛│
    ┃ -----------------------------------┃              │ 按 ~ESC~取消
    ┗━━━━━━━━━━━━━━━━━━┛              │──────
    ::
    =============================================================================
    :errchoice "选择错误!" [x]

    错误:你没有选择任何文件!

       [(B)返回]  [(Q)取消]
    ::
    -------------------------------------------------------------------------------
    :cancel "取消操作!" [x]

    你确定要取消操作任务吗?

      [(&Y)确定]  [(&B)返回]
    ::
    -------------------------------------------------------------------------------
    :copyright
      版权所有, 盗版不究。 感谢使用 "电脑管理员随身光盘" !   光盘制作:王小云 ^
    ::
    -----------------------------------------------------------------------------


    @echo off
    if %1*==?* goto _usg
    if %1*==/?* goto _usg
    if %1*==-?* goto _usg
    for %%a in (h H /H /h -H -h help HELP /HELP /help -help) do if %1*==%%a* goto _usg
    if not %1*==* goto cmdload

    :main
      wbat pal ! cls(blue on +brown) ! text 24,4 @%ramd%\dic.dic:copyright
        call w.bat box @%ramd%\dic.dic:_driver
        if errorlevel 100 goto quit
        if errorlevel 4 goto help
        if errorlevel 3 goto cancel
        if errorlevel 2 goto brown
        if errorlevel 1 goto winload
        goto quit

    :help
        wbat pal ! cls ! fill 6,4 (16,74) (black on +brown)
            set Wtexthi=blue on +brown
        wbat text 2,4 @%ramd%\dic.dic:_dr_help ! text 24,4 @%ramd%\dic.dic:copyright
            set Wtexthi=
        wbat box 20,54 确定,取消
        if errorlevel 100 goto main
        if errorlevel 2 goto quit
        if errorlevel 1 goto main
        goto quit

    :cancel
       wbat fix box @%ramd%\dic.dic:_driver
       wbat box @%ramd%\dic.dic:cancel #2
       if errorlevel 100 goto main
       if errorlevel 2 goto main
       if errorlevel 1 goto quit
       goto quit

    :brown
       wbat fix box @%ramd%\dic.dic:_driver
       if exist %temp%\list.txt del %temp%\list.txt >NUL
       DIR %ramd%\drivers\*.* /b/a-d/one > %temp%\list.txt
       call W.BAT list 3,60 @%temp%\list.txt
       if not %wbat%*==* goto brofile
       wbat box @%ramd%\dic.dic:errchoice
       if errorlevel 100 goto brown
       if errorlevel 2 goto quit
       if errorlevel 1 goto brown
       goto quit

    :brofile
       set sfile=%wbat%
       strings sname=filename %wbat%
       strings extname=fileext %wbat%
       goto main  

    :cmdload
       set flag=
       loadsys /l |find /i "%1" >NUL
          if not errorlevel 1 loadsys /u %1 >NUL
       if %2*==/u* goto quit
          loadsys /xd /s %1 %2 %3 %4 %5 %6 %7 %8 %9 >NUL
          loadsys /l |find /i "%1" >NUL
          if not errorlevel 1 set flag=1
       goto quit

    :winload
       if %sfile%*==* goto unsfile
       if %wcb1%*==1* if %spr%*==* goto unspr
       if %wcb2%*==1* if %scd%*==* goto unscd
       if %wcb2%*==1* if %wcb1%*==* goto uncdname
       if %wrb%*==2* goto unload
       goto load

    :unspr
       wbat fix box @%ramd%\dic.dic:_driver
       wbat box "你√选了~参数~选项但未输入参数!",确定
       if errorlevel 100 goto main
       goto main  

    :unscd
       wbat fix box @%ramd%\dic.dic:_driver
       wbat box "你√选了~光驱~选项但未输入~参数~中给的光驱名!",确定
       if errorlevel 100 goto main
       goto main

    :unsfile
       wbat fix box @%ramd%\dic.dic:_driver   
       wbat box "未指定文件名,无法继续!",确定
       if errorlevel 100 goto main
       if goto main

    :uncdname
       wbat fix box @%ramd%\dic.dic:_driver   
       wbat box "你√选了~光驱~选项,也必须√选~参数~选项,并输入~参数~中的光驱名!",确定
       if errorlevel 100 goto main
       if goto main   
      
    :unload
       loadsys /l |find /i "%sname%" >NUL
       if not errorlevel 1 goto yeunload
       wbat fix box @%ramd%\dic.dic:_driver
       wbat box "未发现加载过%sfile%驱动,卸载无法完成!",确定
       if errorlevel 100 goto main
       goto main

    :yeunload
       if not %extname%*==* loadsys /u %sname%.%extname% >NUL
       if %extname%*==* loadsys /u %sname% >NUL
       loadsys /l |find /i "%sname%" >NUL
       if not errorlevel 1 goto errunload
       wbat box "%sfile%驱动卸载成功!",确定
       if errorlevel 100 goto quit
       goto quit

    :errunload
       wbat fix box @%ramd%\dic.dic:_driver
       wbat box "%sfile%驱动卸载失败,请确保~文件名~合法!",确定
       if errorlevel 100 goto main
       goto main  

    :load
       loadsys /l |find /i "%sname%" >NUL
       if not errorlevel 1 goto notload
       if %wcb3%*==1* set sfor=/od
       if not %extname%*==* loadsys %sfor% /xd /s %sname%.%extname% %spr% >NUL
       if %extname%*==* loadsys %sfor% /xd /s %sname% %spr% >NUL
       loadsys /l |find /i "%sname%" >NUL
       if errorlevel 1 goto errload
       wbat box "%sfile%驱动加载成功!",确定
       if errorlevel 100 goto quit
       goto quit

    :notload
       wbat fix box @%ramd%\dic.dic:_driver  
       wbat box "发现%sfile%驱动已经加载,不能重复加载!",确定
       if errorlevel 100 goto main
       goto main

    :errload
       wbat fix box @%ramd%\dic.dic:_driver  
       wbat box "%sfile%驱动加载失败,请确保~文件名~合法!",确定
       if errorlevel 100 goto main
       goto main

    :quit

  • 2007-11-18 19:45
    查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

    请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


    可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



    论坛跳转: