
[Réglé] demande adaptation de script
J'ai expliqué... Le batch à la base n'a aucun rapport avec ceci...
C'est moi qui souhaite vérifier l'espace disque totale et libre du disque dur avant de continuer le script batch (Permet d'installer un serveur de jeux qui a besoin de 2Go +/-)
Grâce à ton script, j'ai réussi ce que je voulais, je t'adore tu sais !
Code:
Set oFSO = CreateObject("Scripting.FileSystemObject")
OpenUser = "Freespace.txt"
Set oLogFile = oFSO.CreateTextFile(OpenUser, True)
Set objNetwork = CreateObject("Wscript.Network")
strComputer = objNetwork.ComputerName
oLogFile.Writeline " "
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery( _
"SELECT * FROM Win32_LogicalDisk Where DeviceID = 'C:'",,48)
For Each objItem in colItems
'Fonction LEN Renvoie le nombre de caractères contenus dans une chaîne, ou le nombre d'octets requis pour mémoriser une variable
if LEN(objItem.Size) > 0 then oLogFile.Writeline objItem.DeviceID &"\ " &"Total " & Convert(objItem.Size)
if LEN(objItem.Size) > 0 then oLogFile.Writeline objItem.DeviceID &"\ " &"Libre " & Convert(objItem.Freespace)
Next
oLogFile.Writeline " "
'creation d'une fonction de Convertion de octects en MegaOctect et Gigaoctect
Function Convert(varSize)
REM if varSize <= 1073741824 then ' si la taille est inferieur à 1073741824 octecs (1 Go = 1024 Mo = 1024*1024 Ko = 1073741824 ) alors calcul en Mo
REM vartmp=round(varSize/1048576,0) & " Mo"
if varSize > 1073741824 then
vartmp=round(varSize/1073741824,0) &" Go" ' si taille est supérieur à 1 Go = 1024 Mo = 1024*1024 Ko = 1073741824 octets alors calcul en Go
end if
Convert=vartmp
end function
oLogFile.Close
Je l'ai modifié un peu... J'ai ajouté pour avoir l'espace totale du disque et dans la sortie du .txt, j'y ai ajouté le texte pour pouvoir récupérer correctement avec une boucle for.
Code:
for /f "tokens=2,3" %%A in ('type "Freespace.txt" ^| Find "Total"') do (
set tailletotale=%%~B
set tailletotale=!tailletotale!
)
echo Taille Totale du Disque C : !tailletotale! Go
pause
for /f "tokens=2,3" %%A in ('type "Freespace.txt" ^| Find "Libre"') do (
set tailledispo=%%B
set tailledispo=!tailledispo!
)
echo Taille Dispo du Disque C : !tailledispo! Go
pause
J'ai testé en modifiant les valeurs et le résultat est parfait même si le HDD fait moins de 100 Go.
Je te remercie mille fois !
Bonne journée.