Question Comment utiliser le .count (Résolu)

Plus d'informations
il y a 14 ans 4 mois #883 par TIti
Bonjour,

Je ne comprends pas comment utiliser le count avec Powershell.
Dans l'exemple ci dessous, pourquoi la valeur renvoyée est elle ... 0 ?[code:1][int]$b=(get-wmiobject Win32_PerfFormattedData_PerfDisk_LogicalDisk |where {$_.name -eq \"C:\"}).count
write-Host $b[/code:1]
Alors que si je retire le count, je n'ai pas de pb[code:1]get-wmiobject Win32_PerfFormattedData_PerfDisk_LogicalDisk |where {$_.name -eq \"C:\"}[/code:1]
Pfftt, j'ai un mal de tête moi aujourd'hui ;)
Merci pour votre aide<br><br>Message édité par: Arnaud, à: 13/09/07 17:39

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 14 ans 4 mois #884 par Robin Lemesle
Réponse de Robin Lemesle sur le sujet Re:Comment utiliser le .count
Salut berurier !

Je ne comprends pas comment utiliser le count avec Powershell.


En faite, c'est tout simple... :lol:
La propriété count va fonctionner dans le cas ou ta requête retourne plusieurs valeurs créant ainsi un tableau (car count est un AliasProperty pour les tableaux : Count = Length)!!! C'est pourquoi tu ne peux pas utiliser cette propriété quand ta requête ne te retourne qu'une valeur, puisqu'il ne s'agit plus d'un tableau.

Par contre tu peux faire comme ceci:

[code:1]((Get-WmiObject -query \&quot;select * from Win32_LogicalDisk where name='C:'\&quot;«») | Measure-Object).count[/code:1]

Tu fais ta requête puis tu mesures l'objet retourné B)

J'espère ne pas t'avoir trop embrouillé avec mes explications.

A bientôt.<br><br>Message édité par: robin, à: 4/09/07 19:20

Robin MVP PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 14 ans 4 mois #885 par Arnaud Petitjean
Bonjour Berurier,

C'est normal que la propriété count ne te retourne rien (et rien converti en int te donne 0) car cette propriété n'existe pas.

D'autre par je ne sais pas trop ce que tu essaies de compter car ta commande me retourne :

[code:1]

__GENUS : 2
__CLASS : Win32_PerfFormattedData_PerfDisk_LogicalDisk
__SUPERCLASS : Win32_PerfFormattedData
__DYNASTY : CIM_StatisticalInformation
__RELPATH : Win32_PerfFormattedData_PerfDisk_LogicalDisk.Name=\&quot;C:\&quot;
__PROPERTY_COUNT : 32
__DERIVATION : {Win32_PerfFormattedData, Win32_Perf, CIM_StatisticalInformation}
__SERVER : POWERSHELLPC
__NAMESPACE : root\cimv2
__PATH : \\powershellpc\root\cimv2:Win32_PerfFormattedData_PerfDisk_LogicalDisk.Name=\&quot;C:\&quot;
AvgDiskBytesPerRead : 0
AvgDiskBytesPerTransfer : 0
AvgDiskBytesPerWrite : 0
AvgDiskQueueLength : 0
AvgDiskReadQueueLength : 0
AvgDisksecPerRead : 0
AvgDisksecPerTransfer : 0
AvgDisksecPerWrite : 0
AvgDiskWriteQueueLength : 0
Caption :
CurrentDiskQueueLength : 0
Description :
DiskBytesPersec : 0
DiskReadBytesPersec : 0
DiskReadsPersec : 0
DiskTransfersPersec : 0
DiskWriteBytesPersec : 0
DiskWritesPersec : 0
FreeMegabytes : 24123
Frequency_Object :
Frequency_PerfTime :
Frequency_Sys100NS :
Name : C:
PercentDiskReadTime : 0
PercentDiskTime : 0
PercentDiskWriteTime : 0
PercentFreeSpace : 63
PercentIdleTime : 0
SplitIOPerSec : 0
Timestamp_Object :
Timestamp_PerfTime :
Timestamp_Sys100NS :

[/code:1]

Peux tu nous donner plus de précisions sur ce que tu veux faire ?

Arnaud<br><br>Message édité par: Arnaud, à: 4/09/07 19:22

MVP PowerShell et créateur de ce magnifique forum :-)
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ou d'un conseil ?

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 14 ans 4 mois #886 par Robin Lemesle
Réponse de Robin Lemesle sur le sujet Re:Comment utiliser le .count
Deux reponses en une minute d'intervalle :: Quelle synchronisation des PowerShelleurs :laugh:

Robin MVP PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 14 ans 4 mois #888 par TIti
Réponse de TIti sur le sujet Re:Comment utiliser le .count
Bonsoir et une fois de + ... merci pour votre aide.
En fait, je veux mesurer le nombre de disques (en filtrant pour n'avoir que les disques qui m'intéressent) avec un espace inférieur à 20 % (propriété PercentFreeSpace)
Et je veux un count pour \&quot;évaluer\&quot; chaque serveur (genre X % de disques hors normes)
Si je ne filtre pas par lettre de partition ... pas de pb.
Ainsi, le code :
[code:1]$a=(get-wmiobject Win32_PerfFormattedData_PerfDisk_LogicalDisk).count
$a[/code:1]me donne bien un résultat de 3.
Mais dès que je filtre avec par exemple une lettre de partition... pas bon.
Là, vous m'avez donné de très bonnes pistes.
Je test demain au boulot et vous donne le résultat dans la foulée.
J'ai mal la tête moi ce soir ... mais mal............ ;)

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 14 ans 4 mois #900 par Jacques Barathon
Petit complément aux réponses d'Arnaud et Robin:

Comme ils l'ont déjà dit, la propriété Count n'existe pas quand ta commande ne retourne qu'un objet. Sauf que tu peux forcer PowerShell à considérer comme un tableau ce que la commande retourne, même s'il y a un seul élément. Dans ce cas, la propriété Count existera quel que soit le nombre d'éléments, même zéro.

Pour ce faire, il faut inclure ta commande entre des parenthèses précédées d'un @. Ca donne:

[code:1]
# Nombre de disques logiques appelés 'C:'
PS&gt; @(get-wmiobject -query \&quot;select * from Win32_PerfFormattedData_PerfDisk_Logicaldisk where Name='C:'\&quot;«»).Count
1

# Nombre de disques logiques appelés 'Z:'
PS&gt; @(get-wmiobject -query \&quot;select * from Win32_PerfFormattedData_PerfDisk_Logicaldisk where Name='Z:'\&quot;«»).Count
0
[/code:1]
Ca devrait te permettre de résoudre ton problème.

Janel

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.100 secondes
Propulsé par Kunena