VBS 解析XML并生成统计档

xml 格式:

<?xml version="1.0" encoding="UTF-8"?>
<STD-Disks>
<DocumentProperties>
<AuthorID>csadop</AuthorID>
<Created>2009-10-30 9:14:35</Created>
<RegisteredOwner>HJTC</RegisteredOwner>
<RegisteredOrganization>HJTC</RegisteredOrganization>
<Computer>C01VPC00001</Computer>
<ExportTool>DameWare Exporter</ExportTool>
<Version>1.0</Version>
</DocumentProperties>
<Disks>
<Source>
<ServerName>c01pc00396</ServerName>
<ServerDomainName>HJTC</ServerDomainName>
<ServerType>WS SRV NT PBR</ServerType>
<ServerFlags>69635</ServerFlags>
<ServerOSVersion>5.0</ServerOSVersion>
<ServerComment/>
<Disk>
<Drive>C:</Drive>
<Format>NTFS</Format>
<Size>19,921,794,906</Size>
<Free>282,736,632</Free>
<Used>19,638,627,264</Used>
<PercentFree>1.42</PercentFree>
<PercentUsed>98.58</PercentUsed>
<VolumeName/>
<SerialNumber>1CF7-111B</SerialNumber>
</Disk>
<Disk>
<Drive>D:</Drive>
<Format>NTFS</Format>
<Size>20,094,528,176</Size>
<Free>4,582,526,800</Free>
<Used>15,511,568,972</Used>
<PercentFree>22.81</PercentFree>
<PercentUsed>77.19</PercentUsed>
<VolumeName>新加卷</VolumeName>
<SerialNumber>3412-1F4D</SerialNumber>
</Disk>
</Source>
</Disks>
</STD-Disks>


VBS解析程序:
option   explicit   
dim fpath,fso,logfile,fwrite
fpath=inputbox ("输入目标文件夹","文件处理器")
logfile="AnalyzeComputer.csv"
set fso=createobject("scripting.filesystemobject")
Set fwrite=fso.opentextfile(logfile,8,true)
getfilename fpath
fwrite.close
Set fso=Nothing
MsgBox "命令执行完成!"

function getfilename(path)
dim file,folder,sfolder,fname,subfolder,Files
if not fso.folderexists(path) then
set fso=nothing
msgbox "目标文件夹不存在!"
exit function
end if
set folder=fso.getfolder(path)
set files=folder.files
fwrite.writeline "ServerName,Drive,Size,Free,Used,PercentFree,PercentUsed"
for each file in Files
'fwrite.writeline path&"\"&file.name
readXml path&"\"&file.name
Next
end Function

Function readXml(filename)
Dim xmlDOC,objNodeList,plot,x,ServerName
Set xmlDOC =CreateObject("MSXML.DOMDocument")
xmlDoc.load filename
Set objNodeList = xmlDoc.getElementsByTagName("ServerName")
If objNodeList.length > 0 then
For each x in objNodeList
ServerName=x.Text
Next
End If
Set objNodeList = xmlDoc.getElementsByTagName("Disk")
If objNodeList.length > 0 then
For each x in objNodeList
plot=replace(x.Text,",","")
plot=parseDisk(plot)
fwrite.writeline ServerName & "," & plot
Next
End If
End Function

Function parseDisk(disk)
'C: NTFS 19921794906 282736632 19638627264 1.42 98.58 1CF7-111B
'array_str=split(input_str,"||")
Dim Drive,Size,Free,Used,PercentFree,PercentUsed,temp
temp = split(disk," ")
If UBound(temp)>3 Then
Drive = temp(0)
Size = temp(2)
Free = temp(3)
Used = temp(4)
PercentFree = temp(5)
PercentUsed = temp(6)
Else
Drive = temp(0)
Size = ""
Free = ""
Used = ""
PercentFree = ""
PercentUsed = ""
End If
parseDisk=Drive & "," & Size & "," & Free & "," & Used & "," & PercentFree & "," & PercentUsed
End Function
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值