Je travaille actuellement sur un script pour savoir combien de stockage libre il y a. Le script vérifie une base de données pour trouver les noms des magasins puis les interroge en utilisant CMD. Il produit ensuite un fichier avec tout le stockage restant. Je ne parviens pas à trouver un moyen de combiner toutes ces valeurs et de ramener la quantité totale.
script :
Dim objFileSys
Set objFileSys = CreateObject("Scripting.FileSystemObject")
If objFileSys.FileExists("a.txt") Then
objFileSys.DeleteFile "a.txt"
WScript.Echo ("old file found and deleted")
Else
WScript.Echo ("old file not found, script will continue")
End If
WScript.Sleep 500
Set objConnection = CreateObject("ADODB.Connection")
Set objRecordSet = CreateObject("ADODB.Recordset")
Set oShell = WScript.CreateObject ("WScript.Shell")
Dim strRes
Dim strDc
Dim strSpc
objConnection.Open _
"Provider=SQLOLEDB;Data Source=dls-bsp-sdb;" & _
"Initial Catalog=DOM_SITE;" & _
"User ID=*****;Password=*****"
objRecordSet.Open "****", objConnection
Do While Not objRecordSet.EOF
WScript.Sleep 1000
strRes = objRecordset.Fields("Volume").Value
strDc = ("cmd /c dir /-c " &strRes)+"| find /i ""bytes free"""
WScript.Echo strRes
oshell.Run "" & strDc + " >> a.txt"
'WScript.Echo strSpc
objRecordSet.MoveNext
Loop
objRecordSet.Close
WScript.Sleep 1000
Const ForReading = 1
Const ForWriting = 2
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("a.txt", ForReading)
strText = objFile.ReadAll
objFile.Close
strNewText = Replace(strText, " 5 Dir(s) ", "")
strNewText1 = Replace(strNewText, " bytes free", "")
strNewText2 = Replace(strNewText1, " ", "")
Set objFile = objFSO.OpenTextFile("a.txt", ForWriting)
objFile.WriteLine strNewText2
objFile.Close
WScript.Sleep 1000
Set objFileToRead = CreateObject("Scripting.FileSystemObject").OpenTextFile("a.txt",1)
Dim strLine
Do While Not objFileToRead.AtEndOfStream
strLine = objFileToRead.ReadLine()
wscript.echo strLine
Loop
WScript.Echo strLine
objFileToRead.Close
Cela produit un fichier texte contenant quelque chose comme
15363938635776
4314728202240
4250596589568
15386325426176
9204097486848
15406486990848
Je sais que je peux lire le fichier en utilisant VBScript comme
Const ForReading = 1
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("a.txt", ForReading)
Do Until objFile.AtEndOfStream
strLine = objFile.ReadLine
WScript.Echo strLine
Loop
objFile.Close
J'ai juste besoin du total au lieu de l'afficher sous forme de texte.