Se connecter / S'enregistrer
Votre question

Calculs via les commandes dos (pour batch)

Tags :
  • Batch
  • Programmation
Dernière réponse : dans Programmation
23 Décembre 2005 23:49:12

Bonjour a tous,

Voilà,

Je souhaiterai savoir si quelqu’un connaît une commande dos, permettant d’effectuer des opérations arithmétiques et de calculer les principales fonctions mathématiques un calcul dans un batch.

Mon problème est le suivant :

Je cherche une méthode pour convertir un nombre exprimer en Octets pour l’avoir en Go et avoir le pourcentage d’utilisation de l’espace disque.

Liste de tous les lecteurs/partitions :
Lecteurs : A:\ C:\ D:\ E:\

Le volume C existe
Nombre total d'octets libres : 25055264768 Octets
Nombre total d'octets : 31456206848 Octets
Nombre total d'octets libres disponibles : 25055264768 Octets
Appuyez sur une touche pour continuer...

Dois je faire un renvoie du résultat dans un fichier texte par exemple > Octet.txt pour traiter l'opération dans un autre batch ou bien peut-on le calculer directement sous dos ?

Par exemple je veux afficher la taille de ma partition C:\ (25055264768 Octets) en Go :
Pour avoir la taille en Go :
25055264768/1024 = 24468032
24468032/1024= 23894,5625
23894,5625/1024 = 23,33453369140625 = 23.3 Go

Cela doit ressembler à quelque chose comme ça :
@echo off
SET taille=%%
SET /a TailleGb=TAILLE/1024/1024/1024

Je ne sais pas comment mettre cela en application sous dos…
Toute aide est la bienvenue !!!
Merci a ceux qui ont lu jusque là.

Autres pages sur : calculs via commandes dos batch

26 Décembre 2005 00:14:14

tiens un petit script qui marche sur les postes avec un gestionnaire wmi (win2000 et + et les nt4 si utilitaire d'installé):
Marche très bien sous xp et 2000
Et pour info ne confond surout pas DOS et l'interpreteur de commande sous windows. DOS est un vieux systeme d'exploitation qu'il est possible de simuler sous les win actuel mais l'interpreteur de commande ou le batch c'est ce qu'on lance en tapant "cmd" dans la fenetre executer par exemple. Toutes les commandes dos ne marchent pas dans le batch mais surtout il y a beaucoup mais beaucoup plus de commande sous le batch que sous dos. Sur le batch de windows on peut tout faire et c'est souvent bcp plus simple de passer par là que de se perdre dans les 50000 fenetre de configuration.



Select Case WScript.Arguments.Count
Case 0
' Default if none specified is local computer (".")
Set objWMIService = GetObject( "winmgmts://./root/cimv2" )
Set colItems = objWMIService.ExecQuery( "Select * from Win32_ComputerSystem", , 48 )
For Each objItem in colItems
strComputer = objItem.Name
Next
Case 1
' Command line parameter can either be a computer name
' or "/?" to request online help
strComputer = Wscript.Arguments(0)
if InStr( strComputer, "?" ) > 0 Then Syntax
Case Else
' Maximum is 1 command line parameter
Syntax
End Select

Display( strComputer )
WScript.Quit(0)


Function Display( strComputer )
strMsg = vbCrLf & "Name:" & vbTab & "Drive:" & vbTab & "Size:" & _
vbTab & "Free:" & vbTab & "% Free:" & vbCrLf & "=====" & _
vbTab & "======" & vbTab & "=====" & vbTab & "=====" & _
vbTab & "=======" & vbCrLf
On Error Resume Next
Set objWMIService = GetObject( "winmgmts://" & strComputer & "/root/cimv2" )
If Err.Number Then
WScript.Echo vbCrLf & "Error # " & CStr( Err.Number ) & _
" " & Err.Description
Err.Clear
Syntax
End If
On Error GoTo 0
' Set colItems = objWMIService.ExecQuery("Select * from Win32_LogicalDisk where MediaType=12",,48)
Set colItems = objWMIService.ExecQuery("Select * from Win32_LogicalDisk where DriveType=3",,48)
For Each objItem in colItems
strMsg = strMsg & strComputer & vbTab & _
objItem.Name & vbTab & _
CStr( Int( 0.5 + ( objItem.Size / 1073741824 ) ) ) & _
vbTab & _
CStr( Int( 0.5 + ( objItem.FreeSpace / 1073741824 ) ) ) & _
vbTab & _
CStr( Int( 0.5 + ( 100 * objItem.FreeSpace / objItem.Size) ) ) & _
vbCrLf
Next
WScript.Echo strMsg
End Function
26 Décembre 2005 15:31:07

1000 fois merci nerick pour ton coup de main. Ce script est parfait !
23 Avril 2009 04:43:51

Bonjour,

Je recherche comment renvoyer, via un fichier Batch, le resultat en nbre de jours d'une difference entre 2 dates, par exemple 15/12/2009 - 14/07/2009 :

j' ai ecris :

rem ***************************************
set /a Date_Depart = 15/12/2009
set /a Nbre_Jours = %Date_Depart% - %DATE%

echo il me reste encore : %Nbre_Jours% jours avant mon depart

rem ***************************************

et cela me renvoie ceci : il me reste encore : 0 jours avant mon depart

¿ Comment puis-je proceder ??

- Merci -
Tristian

Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS