Question
[Résolu] Obtenir l'utilisation processeur
- Norris Chuck
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 10
- Remerciements reçus 0
il y a 15 ans 1 mois #9363
par Norris Chuck
[Résolu] Obtenir l'utilisation processeur a été créé par Norris Chuck
Bonjour à tous,
débutant en PowerShell, je cherche à obtenir correctement l'utilisation processeur et à la manipuler.
Voici ou j'en suis arrivé :
[code:1]#récupération de la chaine contenant l'utilisation processeur
$a = (Get-Counter '\Processeur(_total)\% temps processeur').Readings;
#conversion en string
$chaine_a = $a.ToString();
#$split = $chaine_a.Split(\"\t\"«»);
#découpage de la chaine
$utilisation_proc = $chaine_a.SubString(50,15);
#remplacement de la , par un . pour la reconnaissance en nombre
$nb_utilisation_proc = $utilisation_proc.replace(\",\",\".\"«»);
#conversion de la chaine de caractères en nombre (entier)
$nb_utilisation_proc = [int]$nb_utilisation_proc;
Write-Host \"_:\" $nb_utilisation_proc \"_\";[/code:1]
Le soucis, c'est lorsque le processeur est utilisé à 100%, la chaine est décalée et je recoit l'erreur comme quoi la sous-chaine que je demande n'est pas accessible.
Bizarrement, le chiffre donc le résultat à récupérer est à la ligne, j'ai donc cherché à splitter en fonction du saut de ligne mais ça ne fonctionne pas comme le montre ma capture d'écran en pièce jointe.
Il me reste encore une solution gérer les erreurs. Si la SubString plante alors le processeur est à 100 % mais ce n'est pas très propre.
Merci d'avance.
Fabien
<br><br>Message édité par: befadudesert, à: 11/04/11 11:52
débutant en PowerShell, je cherche à obtenir correctement l'utilisation processeur et à la manipuler.
Voici ou j'en suis arrivé :
[code:1]#récupération de la chaine contenant l'utilisation processeur
$a = (Get-Counter '\Processeur(_total)\% temps processeur').Readings;
#conversion en string
$chaine_a = $a.ToString();
#$split = $chaine_a.Split(\"\t\"«»);
#découpage de la chaine
$utilisation_proc = $chaine_a.SubString(50,15);
#remplacement de la , par un . pour la reconnaissance en nombre
$nb_utilisation_proc = $utilisation_proc.replace(\",\",\".\"«»);
#conversion de la chaine de caractères en nombre (entier)
$nb_utilisation_proc = [int]$nb_utilisation_proc;
Write-Host \"_:\" $nb_utilisation_proc \"_\";[/code:1]
Le soucis, c'est lorsque le processeur est utilisé à 100%, la chaine est décalée et je recoit l'erreur comme quoi la sous-chaine que je demande n'est pas accessible.
Bizarrement, le chiffre donc le résultat à récupérer est à la ligne, j'ai donc cherché à splitter en fonction du saut de ligne mais ça ne fonctionne pas comme le montre ma capture d'écran en pièce jointe.
Il me reste encore une solution gérer les erreurs. Si la SubString plante alors le processeur est à 100 % mais ce n'est pas très propre.
Merci d'avance.
Fabien
<br><br>Message édité par: befadudesert, à: 11/04/11 11:52
Pièces jointes :
Connexion ou Créer un compte pour participer à la conversation.
- xyz
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 69
il y a 15 ans 1 mois #9364
par xyz
Tutoriels PowerShell
Réponse de xyz sur le sujet Re:Obtenir correctement l'utilisation processeur
Salut,
essaie ceci :
[code:1]
#récupération de la chaine contenant l'utilisation processeur
$a = (Get-Counter '\Processeur(_total)\% temps processeur').Readings
#Efface les caractères linefeed
#découpe la chaine sur le caractère ':'
#récupère le second élément, en une valeur de type Double
#On peut chaîner les appels car chaque méthode renvoi une instance de string
[Double]$utilisation_proc = ($a.Replace(\"`n\",\"\"«»).Split(\":\"«»))[1]
#Formatage de l'affichage
Write-Host (\"_: {0:###.####} _\" -f $utilisation_proc
[/code:1]
Pour le formatage de chaîne, voir les notes de cette page .<br><br>Message édité par: Laurent Dardenne, à: 8/04/11 18:39
essaie ceci :
[code:1]
#récupération de la chaine contenant l'utilisation processeur
$a = (Get-Counter '\Processeur(_total)\% temps processeur').Readings
#Efface les caractères linefeed
#découpe la chaine sur le caractère ':'
#récupère le second élément, en une valeur de type Double
#On peut chaîner les appels car chaque méthode renvoi une instance de string
[Double]$utilisation_proc = ($a.Replace(\"`n\",\"\"«»).Split(\":\"«»))[1]
#Formatage de l'affichage
Write-Host (\"_: {0:###.####} _\" -f $utilisation_proc
[/code:1]
Pour le formatage de chaîne, voir les notes de cette page .<br><br>Message édité par: Laurent Dardenne, à: 8/04/11 18:39
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Norris Chuck
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 10
- Remerciements reçus 0
il y a 15 ans 1 mois #9377
par Norris Chuck
Réponse de Norris Chuck sur le sujet Re:Obtenir correctement l'utilisation processeur
Salut Laurent,
Merci beaucoup pour ta réponse. J'ai mixé les deux scripts ce qui donne :
[code:1]#récupération de la chaine contenant l'utilisation processeur
$a = (Get-Counter '\Processeur(_total)\% temps processeur').Readings
#Efface les caractères linefeed
#découpe la chaine sur le caractère ':'
#récupère le second élément, en une valeur de type Double
#On peut chaîner les appels car chaque méthode renvoi une instance de string
#[Double]$utilisation_proc = ($a.Replace(\"`n\",\"\"«»).Split(\":\"«»))[1]
$utilisation_proc = ($a.Replace(\"`n\",\"\"«»).Split(\":\"«»))[1]
$utilisation_proc = $utilisation_proc.replace(\",\",\".\"«»);
$nb_utilisation_proc = [int]$utilisation_proc;
#Formatage de l'affichage
Write-Host $nb_utilisation_proc;[/code:1]
Merci beaucoup pour ta réponse. J'ai mixé les deux scripts ce qui donne :
[code:1]#récupération de la chaine contenant l'utilisation processeur
$a = (Get-Counter '\Processeur(_total)\% temps processeur').Readings
#Efface les caractères linefeed
#découpe la chaine sur le caractère ':'
#récupère le second élément, en une valeur de type Double
#On peut chaîner les appels car chaque méthode renvoi une instance de string
#[Double]$utilisation_proc = ($a.Replace(\"`n\",\"\"«»).Split(\":\"«»))[1]
$utilisation_proc = ($a.Replace(\"`n\",\"\"«»).Split(\":\"«»))[1]
$utilisation_proc = $utilisation_proc.replace(\",\",\".\"«»);
$nb_utilisation_proc = [int]$utilisation_proc;
#Formatage de l'affichage
Write-Host $nb_utilisation_proc;[/code:1]
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.042 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- [Résolu] Obtenir l'utilisation processeur