In addition to Weibo, there is also WeChat
Please pay attention
WeChat public account
Shulou
2025-02-25 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Development >
Share
Shulou(Shulou.com)06/03 Report--
This article mainly shows you "VBS how to achieve hard disk read and write statistics", the content is easy to understand, clear, hope to help you solve your doubts, the following let the editor lead you to study and learn "VBS how to achieve hard disk read and write statistics" this article.
WinXP,Win7,Win8
The copy code is as follows:
Reprint the original content and quote the core part of the code, please indicate the source
Hard disk read and write statistics. VBS
If (Lcase (Right (Wscript.FullName,11)) = "wscript.exe") Then
CreateObject ("WScript.Shell") .Run ("% Comspec% / C" & Chr (34) & "mode con cols=52 lines=22" & "& Title hard disk read and write statistics. VBS By: FastSLZ PCEVA Or BatHome & & Cscript.exe / / NoLogo" & Chr (34) & Wscript.ScriptFullName & Chr (34) & Chr (34)), 3:Set WMI = Nothing:Wscript.Quit
End If
Dim WMI,vName,IDE,cPPP,sNow
Input = 1:InputS = Input*980
On Error Resume Next
Set WMI = GetObject ("winmgmts: {impersonationLevel=impersonate}!\\.\ root\ cimv2")
Set IDE = WMI.ExecQuery ("Select * from Win32_DiskDrive WHERE InterfaceType='IDE'")
Set cPPP = WMI.ExecQuery ("SELECT * FROM Win32_PerfRawData_PerfDisk_PhysicalDisk WHERE Name'_ Total'")
For Each oIDE In IDE
For I = 0 To IDE.Count
Select Case oIDE.Index
Case i
For Each oPPP In cPPP
If InStr (oPPP.Name, I) Then vName = oPPP.Name
Next
Select Case i
Case 0 Disk0=oIDE.Caption& "" & oIDE.FirmwareRevision:Size0=oIDE.Size:DskP0=vName
Case 1 Disk1=oIDE.Caption& "" & oIDE.FirmwareRevision:Size1=oIDE.Size:DskP1=vName
Case 2 Disk2=oIDE.Caption& "" & oIDE.FirmwareRevision:Size2=oIDE.Size:DskP2=vName
Case 3 Disk3=oIDE.Caption& "" & oIDE.FirmwareRevision:Size3=oIDE.Size:DskP3=vName
Case 4 Disk4=oIDE.Caption& "" & oIDE.FirmwareRevision:Size4=oIDE.Size:DskP4=vName
Case 5 Disk5=oIDE.Caption& "" & oIDE.FirmwareRevision:Size5=oIDE.Size:DskP5=vName
End Select
End Select
Next
Next
Set cPPP = Nothing:Set IDE= Nothing
If Disk0 "" Then WScript.Echo Left (DskP0,1) & ": & vbTab& Disk0 & vbTab _
& vbCrLf&vbTab& "Vendor capacity: & Round (Size0/1000000000) &" GB "_
& vbCrLf&vbTab& "actual capacity:" & Round (Size0/1073741824,2) & "GB" _
& vbCrLf&vbTab& "partition status:" & Right (DskP0,Len (DskP0)-2)
If Disk1 "" Then WScript.Echo Left (DskP1,1) & ": & vbTab& Disk1 & vbTab _
& vbCrLf&vbTab& "Vendor capacity: & Round (Size1/1000000000) &" GB "_
& vbCrLf&vbTab& "actual capacity:" & Round (Size1/1073741824,2) & "GB" _
& vbCrLf&vbTab& "partition status:" & Right (DskP1,Len (DskP1)-2)
If Disk2 "" Then WScript.Echo Left (DskP2,1) & ": & vbTab& Disk2 & vbTab _
& vbCrLf&vbTab& "Vendor capacity: & Round (Size2/1000000000) &" GB "_
& vbCrLf&vbTab& "actual capacity:" & Round (Size2/1073741824,2) & "GB" _
& vbCrLf&vbTab& "partition status:" & Right (DskP2,Len (DskP2)-2)
If Disk3 "" Then WScript.Echo Left (DskP3,1) & ": & vbTab& Disk3 & vbTab _
& vbCrLf&vbTab& "Vendor capacity: & Round (Size3/1000000000) &" GB "_
& vbCrLf&vbTab& "actual capacity:" & Round (Size3/1073741824,2) & "GB" _
& vbCrLf&vbTab& "partition status:" & Right (DskP3,Len (DskP3)-2)
If Disk4 "" Then WScript.Echo Left (DskP4,1) & ": & vbTab& Disk4 & vbTab _
& vbCrLf&vbTab& "Vendor capacity: & Round (Size4/1000000000) &" GB "_
& vbCrLf&vbTab& "actual capacity:" & Round (Size4/1073741824,2) & "GB" _
& vbCrLf&vbTab& "partition status:" & Right (DskP4,Len (DskP4)-2)
If Disk5 "" Then WScript.Echo Left (DskP5,1) & ": & vbTab& Disk5 & vbTab _
& vbCrLf&vbTab& "Vendor capacity: & Round (Size5/1000000000) &" GB "_
& vbCrLf&vbTab& "actual capacity:" & Round (Size5/1073741824,2) & "GB" _
& vbCrLf&vbTab& "partition status:" & Right (DskP5,Len (DskP5)-2)
WScript.Echo "↑ Please enter the number of the hard drive to be monitored and press enter"
StdInput = WScript.StdIn.Readline
StdInput=Left (UCase (stdInput), 1)
If stdInput > "5" Or stdInput
< "0" Then MsgBox "输入错误" :WScript.Quit If InStr(DskP0, stdInput) Then Call Network(Disk0,Size0,DskP0) If InStr(DskP1, stdInput) Then Call Network(Disk1,Size1,DskP1) If InStr(DskP2, stdInput) Then Call Network(Disk2,Size2,DskP2) If InStr(DskP3, stdInput) Then Call Network(Disk3,Size3,DskP3) If InStr(DskP4, stdInput) Then Call Network(Disk4,Size4,DskP4) If InStr(DskP5, stdInput) Then Call Network(Disk5,Size5,DskP5) Sub Network(Disks,Sizes,DskPs) sNow=Now Do Dim A 'WScript.Echo "已运行"&Ts\3600&"小时"&(Ts mod 3600)\60&"分钟"&(Ts mod 3600) mod 60&"秒" Set A = WMI.ExecQuery("Select * from Win32_PerfRawData_PerfDisk_PhysicalDisk Where Name='"&DskPs&"'") For Each B In A R1 = B.DiskReadBytesPersec W1 = B.DiskWriteBytesPersec If RA0 = "" Then RA0 = B.DiskReadBytesPersec Else RA1 = R1 End If If WA0 = "" Then WA0 = B.DiskWriteBytesPersec Else WA1 = W1 End If Next Set A = Nothing WScript.Sleep(InputS) Set A = WMI.ExecQuery("Select * from Win32_PerfRawData_PerfDisk_PhysicalDisk Where Name='"&DskPs&"'") For Each B In A R2 = B.DiskReadBytesPersec W2 = B.DiskWriteBytesPersec Next Set A = Nothing WScript.Echo Disks &" " &Round(Sizes/1073741824) &"GB" &vbCrLf _ &"实时读取:" & CheckSize((R2-R1)/Input) &"/s" &vbCrLf _ &"实时写人:" & CheckSize((W2-W1)/Input) &"/s"&vbCrLf _ &"脚本累计读取:" & CheckSize(RA1-RA0) &vbCrLf _ &"脚本累计写入:" & CheckSize(WA1-WA0) &vbCrLf _ &"开机累计读取:" & CheckSize(R1) &vbCrLf _ &"开机累计写入:" & CheckSize(W1) &vbCrLf&vbCrLf&vbCrLf&vbCrLf&vbCrLf&vbCrLf&vbCrLf&vbCrLf&vbCrLf&vbCrLf&vbCrLf&vbCrLf&vbCrLf&vbCrLf _ &"已运行"&Ts\3600&"小时"&(Ts mod 3600)\60&"分钟"&(Ts mod 3600) mod 60&"秒" Ts=DateDiff("s", sNow, Now)'Ts=TS+1 Loop End Sub Function CheckSize(SZ) On Error Resume Next If SZ =>1073741824 Then
SZ = FormatNumber (Round (SZ/1073741824,2)) & "GB"
ElseIf SZ = > 1048576 Then
SZ = FormatNumber (Round (SZ/1048576,2)) & "MB"
ElseIf SZ = > 1024 Then
SZ = FormatNumber (Round (SZ/1024,2)) & "KB"
Else
SZ = "0" & FormatNumber (Round (SZ/1024,2)) & "KB"
End If
CheckSize=Right ("" & SZ,10)
End Function
Zone read and write statistics. VBS
The copy code is as follows:
Reprint the original content and quote the core part of the code, please indicate the source
If (Lcase (Right (Wscript.FullName,11)) = "wscript.exe") Then
CreateObject ("WScript.Shell") .Run ("% Comspec% / C" & Chr (34) & "mode con cols=52 lines=22" & "& Title partition read and write statistics. VBS By: FastSLZ PCEVA Or BatHome & & Cscript.exe / / NoLogo" & Chr (34) & Wscript.ScriptFullName & Chr (34) & Chr (34)), 3:Set WMI = Nothing:Wscript.Quit
End If
Input = 1:InputS = Input*1000
Dim WMI,vName,IDE,cPPP,sNow
On Error Resume Next
Set WMI = GetObject ("winmgmts: {impersonationLevel=impersonate}!\\.\ root\ cimv2")
Set IDE = WMI.ExecQuery ("Select * from Win32_DiskDrive WHERE InterfaceType='IDE'")
Set cPPP = WMI.ExecQuery ("SELECT * FROM Win32_PerfRawData_PerfDisk_PhysicalDisk WHERE Name'_Total'")
For Each oIDE In IDE
For I = 0 To IDE.Count
Select Case oIDE.Index
Case i
For Each oPPP In cPPP
If InStr (oPPP.Name, I) Then vName = oPPP.Name
Next
Select Case i
Case 0 Disk0=oIDE.Caption& "" & oIDE.FirmwareRevision:Size0=oIDE.Size:DskP0=vName
Case 1 Disk1=oIDE.Caption& "" & oIDE.FirmwareRevision:Size1=oIDE.Size:DskP1=vName
Case 2 Disk2=oIDE.Caption& "" & oIDE.FirmwareRevision:Size2=oIDE.Size:DskP2=vName
Case 3 Disk3=oIDE.Caption& "" & oIDE.FirmwareRevision:Size3=oIDE.Size:DskP3=vName
Case 4 Disk4=oIDE.Caption& "" & oIDE.FirmwareRevision:Size4=oIDE.Size:DskP4=vName
Case 5 Disk5=oIDE.Caption& "" & oIDE.FirmwareRevision:Size5=oIDE.Size:DskP5=vName
End Select
End Select
Next
Next
Set cPPP = Nothing:Set IDE= Nothing
If Disk0 "" Then DskP=Right (DskP0,Len (DskP0)-2): WScript.Echo Left (DskP0,1) & ": & vbTab& Disk0 & vbTab _
& vbCrLf&vbTab& "partition status:" & Right (DskP0,Len (DskP0)-2)
If Disk1 "" Then DskP=DskP& "& Right (DskP1,Len (DskP1)-2): WScript.Echo Left (DskP1,1) &": & vbTab& Disk1 & vbTab _
& vbCrLf&vbTab& "partition status:" & Right (DskP1,Len (DskP1)-2)
If Disk2 "" Then DskP=DskP& "& Right (DskP2,Len (DskP2)-2): WScript.Echo Left (DskP2,1) &": & vbTab& Disk2 & vbTab _
& vbCrLf&vbTab& "partition status:" & Right (DskP2,Len (DskP2)-2)
If Disk3 "" Then DskP=DskP& "& Right (DskP3,Len (DskP3)-2): WScript.Echo Left (DskP3,1) &": & vbTab& Disk3 & vbTab _
& vbCrLf&vbTab& "partition status:" & Right (DskP3,Len (DskP3)-2)
If Disk4 "" Then DskP=DskP& "& Right (DskP4,Len (DskP4)-2): WScript.Echo Left (DskP4,1) &": & vbTab& Disk4 & vbTab _
& vbCrLf&vbTab& "partition status:" & Right (DskP4,Len (DskP4)-2)
If Disk5 "" Then DskP=DskP& "& Right (DskP5,Len (DskP5)-2): WScript.Echo Left (DskP5,1) &": & vbTab& Disk5 & vbTab _
& vbCrLf&vbTab& "partition status:" & Right (DskP5,Len (DskP5)-2)
WScript.Echo vbCrLf& "Please enter any drive letter in" & DskP& "
StdInput = WScript.StdIn.Readline
StdInput=Left (UCase (stdInput), 1)
If InStr (DskP,stdInput) Then Call Network (stdInput& ":)
Sub Network (DskPs)
SNow=Now
Do
Dim A
Set A = WMI.ExecQuery ("Select * from Win32_PerfRawData_PerfDisk_LogicalDisk Where Name ='" & DskPs & "'")
For Each B In A
R1 = B.DiskReadBytesPersec
W1 = B.DiskWriteBytesPersec
If RA0 = "" Then RA0 = B.DiskReadBytesPersec Else RA1 = R1 End If
If WA0 = "" Then WA0 = B.DiskWriteBytesPersec Else WA1 = W1 End If
Next
Set A = Nothing
WScript.Sleep (InputS)
Set A = WMI.ExecQuery ("Select * from Win32_PerfRawData_PerfDisk_LogicalDisk Where Name ='" & DskPs & "'")
For Each B In A
R2 = B.DiskReadBytesPersec
W2 = B.DiskWriteBytesPersec
Next
Set A = Nothing
WScript.Echo "Monitoring Zone:" & DskPs & vbCrLf _
& "Real-time read:" & CheckSize ((R2-R1) / Input) & "/ s" & vbCrLf _
& "Real-time writer:" & CheckSize ((W2-W1) / Input) & "/ s" & vbCrLf _
& "script cumulative reads:" & CheckSize (RA1-RA0) & vbCrLf _
& "script cumulative writes:" & CheckSize (WA1-WA0) & vbCrLf _
& "boot cumulative read:" & CheckSize (R1) & vbCrLf _
& "boot cumulative write:" & CheckSize (W1) & vbCrLf&vbCrLf&vbCrLf&vbCrLf&vbCrLf&vbCrLf&vbCrLf&vbCrLf&vbCrLf&vbCrLf&vbCrLf&vbCrLf&vbCrLf&vbCrLf _
& run & Ts\ 3600 & hours & (Ts mod 3600)\ 60 & minutes & (Ts mod 3600) mod 60 & seconds
Ts=DateDiff ("s", sNow, Now) 'Ts=TS+1
Loop
End Sub
Function CheckSize (SZ)
On Error Resume Next
If SZ = > 1073741824 Then
SZ = FormatNumber (Round (SZ/1073741824,2)) & "GB"
ElseIf SZ = > 1048576 Then
SZ = FormatNumber (Round (SZ/1048576,2)) & "MB"
ElseIf SZ = > 1024 Then
SZ = FormatNumber (Round (SZ/1024,2)) & "KB"
Else
SZ = "0" & FormatNumber (Round (SZ/1024,2)) & "KB"
End If
CheckSize=Right ("" & SZ,10)
End Function
The above is all the contents of the article "how to achieve hard disk read and write Statistics by VBS". Thank you for reading! I believe we all have a certain understanding, hope to share the content to help you, if you want to learn more knowledge, welcome to follow the industry information channel!
Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.
Views: 0
*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.
Continue with the installation of the previous hadoop.First, install zookooper1. Decompress zookoope
"Every 5-10 years, there's a rare product, a really special, very unusual product that's the most un
© 2024 shulou.com SLNews company. All rights reserved.