Page 1 of 1 1
Topic Options
#86196 - 2002-06-19 05:57 PM Drive enumeration
BrianTX Offline
Korg Regular

Registered: 2002-04-01
Posts: 895
Someone recently had a question about detecting which drive was the CD-ROM. Here is a script to do that:

code:
$fso = CreateObject("Scripting.FileSystemObject")
$drives = $fso.Drives
For each $drive in $drives
If $drive.DriveType = 4
$drive.DriveLetter " is a CD-ROM"
Endif
Next

To enumerate all drives, use:

code:
$fso = CreateObject("Scripting.FileSystemObject")
$drives = $fso.Drives
For each $drive in $drives
$Dtype = $drive.DriveType
Select
Case $Dtype = 0
$type = "Unknown"
Case $Dtype = 1
$type = "Removable"
Case $Dtype = 2
$type = "Fixed"
Case $Dtype = 3
$type = "Network"
Case $Dtype = 4
$type = "CD-ROM"
Case $Dtype = 5
$type = "RAM Disk"

EndSelect

"The " + $drive.driveletter + " drive is of type " + $type + "." ?
Next

Brian

Top
#86197 - 2002-06-20 04:32 AM Re: Drive enumeration
cj Offline
MM club member
*****

Registered: 2000-04-06
Posts: 1102
Loc: Brisbane, Australia
It's lunchtime here [Smile]

code:
$aTypes="Unknown","Removable","Fixed","Network","CD-ROM","RAM Disk"
for each $oDrive in CreateObject("Scripting.FileSystemObject").Drives
"The " $oDrive.DriveLetter " drive is of type " $aTypes[$oDrive.DriveType] "." ?
next

cj

Top
#86198 - 2002-06-20 04:43 AM Re: Drive enumeration
Les Offline
KiX Master
*****

Registered: 2001-06-11
Posts: 12734
Loc: fortfrances.on.ca
In the spirit of one-upmanship...

KixGolf score = 211

Cool!
_________________________
Give a man a fish and he will be back for more. Slap him with a fish and he will go away forever.

Top
#86199 - 2002-06-20 05:35 AM Re: Drive enumeration
cj Offline
MM club member
*****

Registered: 2000-04-06
Posts: 1102
Loc: Brisbane, Australia
KiXGolf? I am looking this up on the board... ahh. Well, let me improve the script then [Smile]

code:
$a="?","Rmvble","Fx'd","Net","CD","RAM"
for each $o in CreateObject("Scripting.FileSystemObject").Drives
$o.DriveLetter ":" $a[$o.DriveType] ?
next

[Big Grin]

cj

Top
#86200 - 2002-06-20 06:59 AM Re: Drive enumeration
NTDOC Administrator Offline
Administrator
*****

Registered: 2000-07-28
Posts: 11623
Loc: CA
Good Job there cj [Big Grin]
Top
#86201 - 2002-06-20 03:45 PM Re: Drive enumeration
BrianTX Offline
Korg Regular

Registered: 2002-04-01
Posts: 895
Cool, CJ!

[Smile]

Brian

Top
#86202 - 2002-06-20 05:35 PM Re: Drive enumeration
Radimus Moderator Offline
Moderator
*****

Registered: 2000-01-06
Posts: 5187
Loc: Tampa, FL
Ok.. here is part 2 and 3.

Make it better [Big Grin]

code:
break on

$DriveType="unknown","removable","fixed","network","cd-rom","ram"
$DrivePara="driveletter","drivetype","sharename","isready","filesystem","volumename","serialnumber"



$ld=DriveEnum(3)
? $ld

for each $drive in split($ld,",")
$info=DriveProp("$drive")
for $index = 0 to ubound($info)
? $DrivePara[$index] ": " $info[$index]
next
?
next
get $k
;******************************************************************
function DriveEnum(optional $filter)
dim $fso, $Drive
$fso=CreateObject("Scripting.FileSystemObject")
if $fso
for each $Drive in $fso.Drives
if instr($filter,$Drive.DriveType) or $filter=""
$DriveEnum=$DriveEnum+$Drive.DriveLetter+","
endif
next
$DriveEnum=left($DriveEnum,len($DriveEnum)-1)
$fso=""
endif
endfunction

;******************************************************************
function DriveProp($Drive)
dim $fso, $Drives, $list, $param, $property
dim $temparray[6]
$fso = createobject("scripting.filesystemobject")
if $fso
$Drives = $fso.drives
$list=0
for each $d in $drives
if $Drive=$d.driveletter
for $param = 0 to ubound($DrivePara)
$property=$DrivePara[$param]
$ret=execute('$$temparray[$param]=$$d.$property')
if $param=1 $temparray[$param]=$DriveType[$temparray[$param]] endif
next
$DriveProp=$temparray
endif
next
$fso=""
endif
exit @error
endfunction



[ 20 June 2002, 18:35: Message edited by: Radimus ]
_________________________
How to ask questions the smart way <-----------> Before you ask

Top
#86203 - 2002-06-20 07:15 PM Re: Drive enumeration
Radimus Moderator Offline
Moderator
*****

Registered: 2000-01-06
Posts: 5187
Loc: Tampa, FL
even better...

function DriveEnum() will return the drive letters for all drives matching the types specified "" wil return all drives, "12" will return floppy and hard drives

function DriveProp($Drive) will return the properties of the specified drive as an array

code:
break on

$parameters="driveletter","drivetype","sharename","isready","filesystem","volumename","serialnumber"


$ld=DriveEnum(3)
? $ld

for each $drive in split($ld)
$info=DriveProp("$drive")
for $index = 0 to ubound($info)
? $parameters[$index] ": " $info[$index]
next
?
next

get $k
;******************************************************************
function DriveEnum(optional $filter)
dim $fso, $Drive

$fso=CreateObject("Scripting.FileSystemObject")
if $fso
for each $Drive in $fso.Drives
if instr($filter,$Drive.DriveType) or $filter=""
$DriveEnum=$DriveEnum+$Drive.DriveLetter+" "
endif
next
$DriveEnum=left($DriveEnum,len($DriveEnum)-1)
$fso=""
endif
endfunction

;******************************************************************
function DriveProp($Drive)
dim $fso, $Drives, $list, $param, $property
$DriveType="unknown","removable","fixed","network","cd-rom","ram"
$DrivePara="driveletter","drivetype","sharename","isready","filesystem","volumename","serialnumber"
dim $temparray[6]
$fso = createobject("scripting.filesystemobject")
if $fso
$D=$fso.getdrive("$Drive")
for $param = 0 to ubound($DrivePara)
$property=$DrivePara[$param]
$ret=execute('$$temparray[$param]=$$d.$property')
if $param=1 $temparray[$param]=$DriveType[$temparray[$param]] endif
next
$DriveProp=$temparray
$fso=""
endif
exit @error
endfunction



[ 20 June 2002, 19:38: Message edited by: Radimus ]
_________________________
How to ask questions the smart way <-----------> Before you ask

Top
#86204 - 2002-06-20 08:46 PM Re: Drive enumeration
BrianTX Offline
Korg Regular

Registered: 2002-04-01
Posts: 895
Cool. glad to see this led to a neato UDF! [Smile]

Brian

Top
Page 1 of 1 1


Moderator:  Shawn, ShaneEP, Ruud van Velsen, Arend_, Jochen, Radimus, Glenn Barnas, Allen, Mart 
Hop to:
Shout Box

Who's Online
0 registered and 507 anonymous users online.
Newest Members
gespanntleuchten, DaveatAdvanced, Paulo_Alves, UsTaaa, xxJJxx
17864 Registered Users

Generated in 0.056 seconds in which 0.023 seconds were spent on a total of 12 queries. Zlib compression enabled.

Search the board with:
superb Board Search
or try with google:
Google
Web kixtart.org