PowerShell : cumul d’une propriété d’une Cmdlet

PowerShell : cumul d'une propriété d'une CmdletAu travers de l’exemple que je tiens à vous présenter ci-dessous, je voulais vous montrer l’instruction $foreach.MoveNext() et $foreach.Current. En réalité, je n’en ai pas eu besoin. J’ai fini par faire autrement.

Cumul de la mémoire utilisée par process 

#Initialisation du tableau de résultat
$res=@()
#Récupération de la liste des process
$processes=Get-Process |Select Name, PrivateMemorySize|Sort -Property Name
#Initialisation d'un flag pour lire les données de la 1ère ligne de la Cmdlet
$start=$true
ForEach($process in $processes)
{
 #Lecture de la 1ère ligne
 if($start)
 {
 $appli0=$process.Name
 $mem=$process.PrivateMemorySize
 $start=$false
 }
 #Lecture des autres lignes
 else
 {
 $appli1=$process.Name
 #Cumul dans $mem de la mémoire consommée si le process de la ligne courante (1) est le même que la ligne précédente (0) !
 If($appli0 -eq $appli1)
 {
 $mem+=$process.PrivateMemorySize
 }
 #Ecriture dans le tableau de résultats
 Else
 {
 $res+=[PSCustomObject]@{application=$appli0;memoire=$mem/1024}
 $mem=$process.PrivateMemorySize
 }
 $appli0=$appli1
 }
}
#traitement de la dernière ligne
$res+=[PSCustomObject]@{application=$appli0;memoire=$mem/1024}
#Nettoyage de l'objet $processes
$processes=$null
#Affichage et nettoyage du tableau de résultats
$res|Out-GridView
$res=$null

Scripting  / Formateur Powershell PowerShell 

Commentaires

Pas encore de commentaire.

Laisser un commentaire

(requis)

(requis)