Free disk space with VMI in megabyte

T

Toki Toki

Hi all!

I'm new to ruby, I've found this pretty neat code linked on a thread on
this forum, original post was at:
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/95197

require 'win32ole'

wmi = WIN32OLE.connect("winmgmts://./root/cimv2")
disk = wmi.ExecQuery("Select * from Win32_LogicalDisk")
disk.each {|drive| puts "#{drive.DeviceID} #{drive.FreeSpace}"}

Now, the code work very well, but I can't convert the free space in MB
or any other unit, how can I convert it?

Thanks.

Best regards.
 
M

Michael Brooks

Toki said:
Hi all!

I'm new to ruby, I've found this pretty neat code linked on a thread on
this forum, original post was at:
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/95197

require 'win32ole'

wmi = WIN32OLE.connect("winmgmts://./root/cimv2")
disk = wmi.ExecQuery("Select * from Win32_LogicalDisk")
disk.each {|drive| puts "#{drive.DeviceID} #{drive.FreeSpace}"}

Now, the code work very well, but I can't convert the free space in MB
or any other unit, how can I convert it?

Thanks.

Best regards.

Hello Toki:

The drive.FreeSpace is being returned as a string (which may also be a
nil). Change #{drive.FreeSpace} to #{drive.FreeSpace.class} to see what
I mean. You'll need to convert the FreeSpace to a number before you can
use math operators / functions with it. Below is an example of how to
do that with the #to_f (aka "to float") method:

disk.each {|drive| puts "#{drive.DeviceID} #{(drive.FreeSpace.to_f /
1024) / 1024}"}

Hope that helps,

Michael
 
T

Toki Toki

Michael said:
Hello Toki:

The drive.FreeSpace is being returned as a string (which may also be a
nil). Change #{drive.FreeSpace} to #{drive.FreeSpace.class} to see what
I mean. You'll need to convert the FreeSpace to a number before you can
use math operators / functions with it. Below is an example of how to
do that with the #to_f (aka "to float") method:

disk.each {|drive| puts "#{drive.DeviceID} #{(drive.FreeSpace.to_f /
1024) / 1024}"}

Hope that helps,

Michael

Thanks a lot for the help and the explanation, I didn't know that
"FreeSpace" by default is returned as a string.

Best regards.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,968
Messages
2,570,153
Members
46,701
Latest member
XavierQ83

Latest Threads

Top