`
wise007
  • 浏览: 32818 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

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
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics