我有一个获取服务器磁盘空间使用情况的脚本。如何在具有可用空间百分比的表中获得输出?
以下是代码:
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
'
答案 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
代码段,用于设置表格内的边距/填充。
对于这个小解决方案,我建议使用字符串插值来创建table
,tr
,td
和style
元素。然后使用众所周知的方法使百分比值超出绝对大小。
请查看MDN - Table如何使用它。