如何计算自由空间的百分比

时间:2015-10-22 09:15:09

标签: vbscript

我有一个获取服务器磁盘空间使用情况的脚本。如何在具有可用空间百分比的表中获得输出?

以下是代码:

strComputer = "Computer Name"

Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
'Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root'\cimv2")

Set colDisks = objWMIService.ExecQuery _
("Select * from Win32_LogicalDisk where drivetype=" & HARD_DISK)

str = str & "SERVER 1 - " & strComputer & vbcrlf
str = str & vbcrlf

For Each objDiskC in colDisks
str = str & objDiskC.DeviceID & " " & FormatNumber(objDiskC.Size/1073741824,2) & " GB" & vbcrlf & vbtab & vbtab
str = str & objDiskC.DeviceID & " " & FormatNumber(objDiskC.FreeSpace/1073741824,2) & " GB" & vbcrlf
Next

str = str & vbcrlf
str = str & vbcrlf
'====================================================================

'Wscript.Echo str

'Send the email
SendMail "xxx@xxx.com", "xxx@xxx.com", "*** Free Disk Space Summary ***", str
'

2 个答案:

答案 0 :(得分:1)

听起来你只想计算自由空间的百分比。

这个的计算很简单;

(objDiskC.FreeSpace / objDiskC.Size) * 100

此处在For Next循环中添加了一行以表示百分比。

For Each objDiskC in colDisks
  str = str & objDiskC.DeviceID & " " & FormatNumber(objDiskC.Size/1073741824, 2) & " GB" & vbCrLf & vbTab & vbTab
  str = str & objDiskC.DeviceID & " " & FormatNumber(objDiskC.FreeSpace/1073741824, 2) & " GB" & vbCrLf
  'Added this line to your For loop.
  str = str & objDiskC.DeviceID & " " & FormatNumber((objDiskC.FreeSpace / objDiskC.Size) * 100, 2) & "% Free" & vbCrLf
Next

答案 1 :(得分:0)

我建议使用HTML Table。您还可以在HTML Mail主体中插入一个CSS style代码段,用于设置表格内的边距/填充。

对于这个小解决方案,我建议使用字符串插值来创建tabletrtdstyle元素。然后使用众所周知的方法使百分比值超出绝对大小。

请查看MDN - Table如何使用它。