Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
[Réglé] Détection de l'espace disque restant sur C:\
Auteur Message
Répondre en citant
Message [Réglé] Détection de l'espace disque restant sur C:\ 
Bonjour,

j'ai récupéré un code sur la toile et ne connaissant pas le VB, je m'en remet à une âme charitable de ce forum.

Je sais que le temps est précieux et que l'ont a pas toujours envie donc je comprendrais votre refus.

Code:
Dim fs, a, d, s
Set fs = CreateObject("Scripting.FileSystemObject")
Set a = fs.CreateTextFile("c:\testfile.txt", True)
Set fs = CreateObject("Scripting.FileSystemObject")
Set d = fs.GetDrive(fs.GetDriveName("C:\"))
s = FormatNumber(d.FreeSpace/1024, 0)
a.WriteLine(s)
a.Close


dans un premier temps, la valeur récupérée ne correspond pas réellement à ce qui est affiché dans le poste de travail, est-ce normal ? Un écart de 10 Go...

Résultat : 214 784 056

Espace libre affiché : 204 Go

ensuite serait t'il possible de faire :

si l'espace disque est inférieur à 20% de l'espace totale, on affiche un message d'avertissement.

si l'espace disque est égal ou supérieur à 20%, on ajoute 15 Go en pourcentage au 20% (je ne sais pas si je m'exprime bien ?)

et pour finir, que je puisse afficher le résultat dans un batch.

Exemple : Espace disque Restant : %B% Go etc...

Je vous demande beaucoup, je sais... Embarassed

Je vous remercie par avance, si vous avez des questions, j'essayerais d'être plus précis...


edit 17h00 :

Je créer un batch permettant la création d'un serveur de jeux (CS:Source) et aimant les choses bien faites, j'aurais aimé intégrer un système de vérification de l'espace disque avant l'installation du/des serveur(s).

Un serveur a besoin de 2Go d'espace disque... (un chouilla plus)

Voilà pourquoi ma demande...



Cordialement



Dernière édition par Owned le Jeu 15 Mar 2012 - 20:51; édité 2 fois
Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message [Réglé] Détection de l'espace disque restant sur C:\ 
Bonjour
attention ne pas confondre vbs et vb.net

214 784 056 -> sont des Mo logiquement à convertir en Go


Sinon en attendant voici un vbs que j'utilisai dans fu autolog :

Code:

Set oFSO = CreateObject("Scripting.FileSystemObject")
OpenUser = "user.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",,48)
   
oLogFile.Writeline "+----------------- [Volume Info System] -----------------+"
oLogFile.Writeline " "
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 &"\" & "(" & objItem.Description & ")" & " - " & objItem.FileSystem & " - Total : " & Convert(objItem.Size) & " (" & Convert(objItem.Freespace) & " Libre" & ")"
if objItem.DriveType <> 3 AND objItem.DriveType >2 then oLogFile.Writeline objItem.DeviceID &"\" & "(" & objItem.Description & ")"
Next
oLogFile.Writeline " "
' http://fr.answers.yahoo.com/question/in … 335AA00Lv2
'creation d'une fonction de Convertion de octects en MegaOctect et Gigaoctect
Function Convert(varSize)
if varSize <= 1073741824 then      ' si la taille est inferieur à 1073741824 octecs (1 Go = 1024 Mo = 1024*1024 Ko = 1073741824 ) alors calcul en Mo
vartmp=round(varSize/1048576,2) & " Mo"
elseif varSize > 1073741824 then
vartmp=round(varSize/1073741824,2) &" 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


ça affiche ceci :
Citation:


+----------------- [Volume Info System] -----------------+

C:\(Disque fixe local) - NTFS - Total : 186.3 Go (169.89 Go Libre)
D:\(Disque fixe local) - NTFS - Total : 195.31 Go (146.16 Go Libre)
E:\(Disque fixe local) - NTFS - Total : 736.2 Go (245.2 Go Libre)
F:\(Disque fixe local) - NTFS - Total : 698.64 Go (495.77 Go Libre)
G:\(Disque CD-ROM)
Z:\(Connexion réseau)






______________________________________________________
Faites paraitre votre batch sur BatchClipboard
Visiter le site web du posteur
Répondre en citant
Message [Réglé] Détection de l'espace disque restant sur C:\ 
Bonsoir Laddy,

ah désolé...


merci pour ton script qui affiche bien la valeur affiché dans le poste de travail mais je ne souhaitais qu'avoir le disque C:\ et obtenir le résultat :
Citation:
C:\ Espace Libre 204,68 Go


Si tu veux déplacer le sujet dans ce cas...

Je vais éditer mon premier sujet pour expliquer le projet que je réalise...



Répondre en citant
Message [Réglé] Détection de l'espace disque restant sur C:\ 
hello !

comme l'a dit laddy laddy il faut convertir les Mo en Go (et oui j'ai bien dit convertir Very Happy )
le fait est que microsoft se croit au dessus des standarts en utilisant l'equivalence 1 Go = 2^10 Mo = 1024 Mo et 1 Go = 2^30 octets
Normalement on doit utiliser Gibio-octets (Gio) pour signifier ce cas particulier, sachant qu'un Go represente 1000 Mo normalent, c'est les cas dans le commerce ou on te pique environ 70 Mio sur un Gio quand on te vend un truc d'un Go

@+




______________________________________________________
--
> Que pensez vous de l'ajout du repertoire point dans $PATH ?
Ma version de troll 18.0.32 beta 3 vient de me faire un core dump.
-+- SE in Guide du Linuxien Pervers : Bien développer son troll -+-

[Dos9]
Visiter le site web du posteur Skype
Répondre en citant
Message [Réglé] Détection de l'espace disque restant sur C:\ 
Inof : http://msdn.microsoft.com/en-us/library/windows/desktop/aa394592(v=vs.85).a…




______________________________________________________
Faites paraitre votre batch sur BatchClipboard
Visiter le site web du posteur
Répondre en citant
Message [Réglé] Détection de l'espace disque restant sur C:\ 
Owned a écrit:
Bonsoir Laddy,

ah désolé...


merci pour ton script qui affiche bien la valeur affiché dans le poste de travail mais je ne souhaitais qu'avoir le disque C:\ et obtenir le résultat :
Citation:
C:\ Espace Libre 204,68 Go


Si tu veux déplacer le sujet dans ce cas...

Je vais éditer mon premier sujet pour expliquer le projet que je réalise...


Avec un peu d'effort :


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 &"\ " &"Espace Libre " & Convert(objItem.Freespace)

Next
oLogFile.Writeline " "



'creation d'une fonction de Convertion de octects en MegaOctect et Gigaoctect
Function Convert(varSize)
if varSize <= 1073741824 then      ' si la taille est inferieur à 1073741824 octecs (1 Go = 1024 Mo = 1024*1024 Ko = 1073741824 ) alors calcul en Mo
vartmp=round(varSize/1048576,2) & " Mo"
elseif varSize > 1073741824 then
vartmp=round(varSize/1073741824,2) &" 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



Résultat :
Citation:
C:\ Espace Libre 52.31 Go





______________________________________________________
Faites paraitre votre batch sur BatchClipboard
Visiter le site web du posteur
Message [Réglé] Détection de l'espace disque restant sur C:\ 


Montrer les messages depuis:
Répondre au sujet Page 1 sur 1
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch