找回密码
 加入
搜索
查看: 2182|回复: 6

【已解决】DriveGetType 怎么同时查看几个驱动器?

  [复制链接]
发表于 2011-9-17 22:22:18 | 显示全部楼层 |阅读模式
本帖最后由 leibin0121 于 2011-9-19 19:50 编辑

DriveGetType ("d:\")是查看D盘,如果我想同时查看g到z的驱动器是不是固定盘,要怎么写呢?求解答!
$var = DriveGetType("d:" )


If  $var ="fixed"   Then 
        MsgBox(16,"Warning"," 固定磁盘! ")
EndIf
If $var= "ramdisk" Or "removable"Or"cdrom" Then

MsgBox(16,"Warning"," 非本地磁盘! ")
EndIf
非常感谢 lixiaolong的热心帮助,感激不尽!
发表于 2011-9-17 23:16:36 | 显示全部楼层
本帖最后由 lixiaolong 于 2011-9-17 23:22 编辑

#include <Array.au3>

Local $avArray[1]

For $i = 67 To 90 ; 67 = C, 90 = Z
        $var = DriveGetType(Chr($i) & ":\")
        If $var Then
                If $var = "Fixed" Then
                        $var = "固定磁盘"
                Else
                        $var = "非本地磁盘!"
                EndIf
        Else
                $var = "NoDriveType"
        EndIf
        _ArrayAdd($avArray, Chr($i) & ":\   " & $var)
Next

_ArrayDisplay($avArray, "")


$avArray[1] = C:\
$avArray[2] = D:\
$avArray[3] = E:\
$avArray[4] = F:\
$avArray[5] = G:\
$avArray[6] = H:\
$avArray[7] = I:\
$avArray[8] = J:\
$avArray[9] = K:\
$avArray[10] = L:\
$avArray[11] = M:\
$avArray[12] = N:\
$avArray[13] = O:\
$avArray[14] = P:\
$avArray[15] = Q:\
$avArray[16] = R:\
$avArray[17] = S:\
$avArray[18] = T:\
$avArray[19] = U:\
$avArray[20] = V:\
$avArray[21] = W:\
$avArray[22] = X:\
$avArray[23] = Y:\
$avArray[24] = Z:\
 楼主| 发表于 2011-9-18 19:49:45 | 显示全部楼层
回复 2# lixiaolong


    非常感谢这位大哥的热心帮助!学到了新东西,感激不尽!!
 楼主| 发表于 2011-9-18 21:20:25 | 显示全部楼层
回复 2# lixiaolong


为什么这样没用啊?
 Local $i


For $i = 67 To 90 

        $var = DriveGetType(Chr($i) & ":")


    


                If $var = "Fixed" And "cdrom" Then


                  

MsgBox(16,"Warning"," 固定磁盘和光驱")
EndIf
                

       
                If $var = "RAMDisk" And "removable" Then


               

MsgBox(16,"Warning","移动磁盘")
EndIf
                
我想检测C到Z的驱动器状态,然后在执行对应操作,请大哥指点一二。
发表于 2011-9-19 19:39:05 | 显示全部楼层
回复 4# leibin0121

指定的驱动器不存在,返回 ""(空白).

你设了条件,并没有返回空白时的处理.

你的代码只能检查"Fixed"(固定的)、 "RAMDisk"(内存盘).

仔细看看你自己的代码.
Local $i

For $i = 67 To 90
        $var = DriveGetType(Chr($i) & ":\")
        If $var = "Fixed" And "cdrom" Then
                MsgBox(16,"Warning"," 固定磁盘和光驱")
        EndIf

        If $var = "RAMDisk" And "removable" Then
                MsgBox(16,"Warning","移动磁盘")
                Else
        EndIf
Next


你的代码是这样.
如果 $var的值为 "Fixed" 
MsgBox(16,"Warning"," 固定磁盘和光驱")
EndIf

如果 $var的值为 "RAMDisk"
MsgBox(16,"Warning","移动磁盘")
EndIf
你是想写成这样吧?
如果 $var的值为 "Fixed" 或者 $var的值为 "cdrom" 
弹出消息框 MsgBox(16,"Warning"," 固定磁盘和光驱")

如果 $var的值为 "RAMDisk" 或者 $var的值为 "removable" 
弹出消息框 MsgBox(16,"Warning","移动磁盘")
这样写法是不对的.
If $var = "Fixed" And "cdrom" Then


那么因该是这样写
Local $i

For $i = 67 To 90
        $var = DriveGetType(Chr($i) & ":\")
        If $var = "Fixed" Or $var = "cdrom" Then
                MsgBox(16,"Warning"," 固定磁盘和光驱")
        EndIf

        If $var = "RAMDisk" Or $var = "removable" Then
                MsgBox(16,"Warning","移动磁盘")
                Else
        EndIf
Next


你想检测C到Z的驱动器状态,那就再加个判断.
        If $var = "Unknown" Then
                MsgBox(16, "Warning", "???")
        EndIf
        If $var = "" Then
                MsgBox(16, "Warning", "???")
        EndIf

遇到这样问题时,看看帮助查一下各个函数的意思,你把它翻译成中文,自然就明白哪里错了.
 楼主| 发表于 2011-9-19 19:43:23 | 显示全部楼层
回复 5# lixiaolong


    终于等到你了 呵呵,or是不是能理解成"或者"?and是不是能理解成  "和"啊?
发表于 2011-9-19 20:44:44 | 显示全部楼层
本帖最后由 lixiaolong 于 2011-9-19 20:47 编辑

回复 6# leibin0121

Or = 或者
And 应该是 "而且"吧,帮助里也是而且.
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-22 12:01 , Processed in 0.085841 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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