无忧启动论坛

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

如何判断B:盘的存在性?(已解决)

[复制链接]
跳转到指定楼层
1#
发表于 2008-4-11 15:27:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请教大家:
在批处理中如何判断B:盘(或B:盘某文件)的存在性,而当B:盘不存在时不至于失控?

-------------------
已解决:使用lianjiang 大师介绍的DREADY.COM工具。
谢谢lianjiang 大师!
也谢谢lxl1638cxyun002

[ 本帖最后由 pseudo 于 2008-4-12 11:27 AM 编辑 ]
2#
发表于 2008-4-11 15:59:12 | 只看该作者
试试IF命令吧
IF:条件判断命令。
用法:IF [NOT] EXIST 文件名 命令 [命令参数]
意义:如果[不]存在某个文件将执行某个命令。

[ 本帖最后由 cxyun002 于 2008-4-11 04:00 PM 编辑 ]
回复

使用道具 举报

3#
 楼主| 发表于 2008-4-11 16:45:14 | 只看该作者
原帖由 cxyun002 于 2008-4-11 03:59 PM 发表
试试IF命令吧
IF:条件判断命令。
用法:IF [NOT] EXIST 文件名 命令 [命令参数]
意义:如果[不]存在某个文件将执行某个命令。

问题是:如果B:盘不存在,if语句就会出严重错误,提示你插盘之类,要回车按键应答后才能继续,这样批处理就被中途打断(失控),不能完全自动执行了。
回复

使用道具 举报

4#
发表于 2008-4-11 17:03:55 | 只看该作者
找个“DREADY.COM”, 可用于判断指定盘符“可写/只读/不存在”等。
当指定盘符不存在时,费时会多一点。不影响程序的运行的连续性。
回复

使用道具 举报

5#
发表于 2008-4-11 17:05:08 | 只看该作者
你这B:盘是软驱还是内存盘.
回复

使用道具 举报

6#
发表于 2008-4-11 17:44:35 | 只看该作者
PECMD 的 IFEX 命令也可以。

┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃    │格式│IFEX <条件,>[命令群组1][!命令群组2]                                                         ┃
┃    ├──┼──────────────────────────────────────────────┨
┃    │功能│依据条件表达式是否成立,成立则执行命令群组1,不成立则执行命令群组2。                        ┃
┃    ├──┼──────────────────────────────────────────────┨
┃    │参数│■条件          对[可用内存]或[磁盘可用空间]或[按键]或[数值变量]或[文件目录]的判断。        ┃
┃    │    │■可用内存      MEM<比较符>数值。                                                           ┃
┃    │    │■磁盘可用空间  R:\<比较符>数值,R:表示盘符。                                               ┃
┃    │    │■按键          KEY<比较符>数值。                                                           ┃
┃    │    │■文件目录      文件目录名,可以使用通配符。                                                ┃
┃    │    │■数值变量      $数值变量名<比较符>数值或数值变量名,数值变量是CALC或ENVI赋值设置的变量。   ┃
┃    │    │■比较符        比较操作符为"<"、">"、"=",分别表示"小于"、"大于"、"等于"。                 ┃
┃IFEX│    │■数值          比较的数值,磁盘和内存单位是MB,按键数值是按键代码。                        ┃
┃    │    │■命令群组      要执行的一条或多条命令,多条命令之间用"|"分开。命令群组之间用分隔符"!"分开。┃
┃    ├──┼──────────────────────────────────────────────┨
┃    │示例│IFEX KEY=17,TEXT 搜索系统字体…|FONT \WINDOWS!TEXT 安装外挂字体|FONT %CurDrv%\外置程序\FONT ┃
┃    │    │IFEX C:\Windows,!MESS 目录C:\Windows不存在,\n请点[确定]。@ 目录检查#OK                     ┃
┃    ├──┼──────────────────────────────────────────────┨
┃    │备注│※本命令功能强大,比较复杂,且可以嵌套(IFEX或FIND)使用,判断多个条件。FIND命令功能与其相似。┃
┃    │    │※<条件表达式>后的","号也可用"*"代替。                                                      ┃
┃    │    │※本命令嵌套IFEX或FIND命令时,被嵌套的命令中不能使用"!"群组分隔符。                         ┃
┃    │    │※本命令包括FIND命令均作命令群解释,命令中不能嵌套TEAM命令。                                ┃
┃    │    │※当IFEX命令用于检测按键时,若用户按了'A'~'Z'或'0'~'9'这些键,按键结果保存在%PressKey%中。┃
┃    │    │※本命令用于变量判断时,所有变量均按double型来处理(最多保留4位小数)。                       ┃
┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫


[ 本帖最后由 lxl1638 于 2008-4-11 05:49 PM 编辑 ]
回复

使用道具 举报

7#
发表于 2008-4-11 17:50:43 | 只看该作者
PECMD 的 IFEX 能在dos下用吗?
回复

使用道具 举报

8#
发表于 2008-4-11 18:01:48 | 只看该作者
不能,现在所谓的B盘,一般是指PE中的B盘,实际的软驱已不存在了(新机不装软驱,旧机中的软驱大多已坏,不能用)。
所以在PE中选择PECMD是可行的方法。

[ 本帖最后由 lxl1638 于 2008-4-11 06:02 PM 编辑 ]
回复

使用道具 举报

9#
 楼主| 发表于 2008-4-11 19:00:07 | 只看该作者

ms dos7.1中判断软驱存在性

原帖由 cxyun002 于 2008-4-11 05:05 PM 发表
你这B:盘是软驱还是内存盘.

要判断类似软驱的。
背景是这样的:
grub4dos加载ms dos7.1启动盘映像为C:盘,并试图加载另一映像(若无该映像则设法让grub忽略加载)为B:盘(fd1)
由于后一个映像可能不存在,进入dos后,需要检查b:盘里是否存在,以便执行不同流程。但
if exist b:\.....之类的语句都会导致失控(判断硬盘不会失控)。

之所以要玩ms dos7.1,是因为我要先启动到dos,在dos下从硬盘已有系统中自动提取硬盘驱动,然后再用grub4dos启动PE。
顺便问一句:进入dos后有办法知道当初是选择哪个grub菜单项进入的吗?

原帖由 lxl1638 于 2008-4-11 06:01 PM 发表
不能,现在所谓的B盘,一般是指PE中的B盘,实际的软驱已不存在了(新机不装软驱,旧机中的软驱大多已坏,不能用)。
所以在PE中选择PECMD是可行的方法。

赫赫,PECMD功能强大,但在此环境不能运行。

原帖由 lianjiang 于 2008-4-11 05:03 PM 发表
找个“DREADY.COM”, 可用于判断指定盘符“可写/只读/不存在”等。
当指定盘符不存在时,费时会多一点。不影响程序的运行的连续性。

谢谢提供工具。我试试看。
不借助工具不知道还有没有办法。

[ 本帖最后由 pseudo 于 2008-4-11 07:02 PM 编辑 ]
回复

使用道具 举报

10#
发表于 2008-4-11 21:02:38 | 只看该作者
我用Avlgomgr.exe载入iso启动映像,内有多个dos7.1启动盘映像,使用挺方便的.
你这个方法我没用过.
载入iso启动映像还有多种方法,多差不多的.
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-28 19:23

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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