原帖由 wjgyz740526 于 2006-9-4 19:43 发表
那么我想根据检测分区结果的不同执行不同的指令,该怎么写这个bat呢?
好像不能根据错误码来判断,那么是跟据屏幕上的文本来作条件判断吗?
原帖由 strongchen 于 2006-9-5 10:26 发表
老毛桃真是批处理高手。。这个贴子收藏
原帖由 strongchen 于 2006-9-5 10:46 发表
奇怪,检测NTFS分区是没问题的,检测 Fat32 的分区却说“无法识别”
但是我用这个片段去可以检测到结果
CHKNTFS C:|FIND "FAT" >NUL
IF %Errorlevel%==0 (
echo You C drivers is Fat
) EL ...
原帖由 strongchen 于 2006-9-5 11:29 发表
加了/I 还是无法显示
@ECHO OFF
SET TestD=D
CHKNTFS %TestD%:|FIND /I "NTFS" >NUL
IF %Errorlevel%==0 (
GOTO NTFS
) ELSE (
SET Errorlevel=0
CHKNTFS %TestD%:|FIND /I "FAT" >NUL
IF %Errorlevel%==0 (
GOTO FAT
) ELSE (
GOTO ERR1
)
)
:NTFS
ECHO 您的 %TestD% 盘分区格式为 NTFS
GOTO EXIT
:FAT
ECHO 您的 %TestD% 盘分区格式为 FAT
GOTO EXIT
:ERR1
ECHO 您的 %TestD% 盘分区格式无法识别
GOTO EXIT
:EXIT
ECHO.
ECHO 请按任意键退出 。。。
PAUSE >NUL
原帖由 wjgyz740526 于 2006-9-5 13:18 发表
还是不能检测fat分区
原帖由 namejm 于 2006-9-5 13:47 发表
虽然返回码0和1在一般情况下表示执行成功和失败,但是,在每个具体的命令中,返回码表示的含义有可能不太一样;在不知道每个具体命令的每个返回码的具体含义之前,用返回码来判断是容易犯错的。
在我的 ...
原帖由 namejm 于 2006-9-5 01:47 PM 发表
虽然返回码0和1在一般情况下表示执行成功和失败,但是,在每个具体的命令中,返回码表示的含义有可能不太一样;在不知道每个具体命令的每个返回码的具体含义之前,用返回码来判断是容易犯错的。
在我的 ...
原帖由 strongchen 于 2006-9-5 14:18 发表
用了老毛桃第二个cmd还是无法认识。。
原帖由 老毛桃 于 2006-9-5 01:57 PM 发表
嘿嘿,高手终于出招了。
还请大侠将你的给逐句解释一下,想学学,先谢了!
原帖由 namejm 于 2006-9-5 14:40 发表
这段代码主要用到了for语句提取指定字符串中某列字符串的功能,然后再对取到的字符串进行些去符号的操作。”tokens=1,2"表示按照空格或者制表符分隔由chkntfs c:这条命令得到的结果(该命令执行成功后会返回两行内容,都用空格分列),我们要取的字符串是NTFS、FAT或者RAW,它位于chkntfs c:这条命令执行结果的第一行第二列,用"tokens=1,2"后,第二个变量%%j就取到了NTFS。,因为结果带了句号,所以还要去掉句号。由于for对字符串是逐行进行解析,所以,当取到第一行的内容之后,不能让for循环继续执行下去,而要直接跳出来(否则%var%的值就是最后一行第二列的内容了),跳到type标签段,在type标签段中进行去句号的操作,set var="var:。="就表示去掉%var%中所有可能存在的句号。
欢迎光临 无忧启动论坛 (http://bbs.wuyou.net./) | Powered by Discuz! X3.3 |