1 votes

Quelle commande VBScript doit être utilisée pour lui dire de ne rien faire ?

Quelle commande doit être utilisée à la place de Do nothing en dessous afin de lui dire de ne rien faire ? Si je le laisse vide, WmiPrvSE.exe entraînera une utilisation élevée du CPU.

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Do
Set colProcesses = objWMIService.ExecQuery _
    ("Select * from Win32_Process Where Name = 'wordpad.exe'")
If colProcesses.Count = 0 Then
    `Do nothing`
Else
    Wscript.Echo "wordpad.exe is running."
End If
Loop

1voto

LPChip Points 53736

La commande que vous recherchez serait DoEvents sauf que ce concept n'existe pas en VBScript et qu'il ne serait pas non plus utile dans votre cas.

La raison de votre utilisation élevée du CPU est que la boucle continue à exécuter la tâche encore et encore. Ainsi, il demande si wordpad est en cours d'exécution encore et encore, et quand c'est le cas, la boucle ne se termine pas, donc elle continue à le faire.

Ce que vous voulez faire, c'est limiter le script à le faire avec une attente entre les deux.

Donc votre Do Nothing serait quelque chose comme ça :

starttime = timer
do: loop until timer = starttime + 1

El + 1 peut être remplacé par un nombre quelconque et il attendra ce temps. Par exemple, si vous souhaitez ne vérifier que toutes les 10 secondes, remplacez-le par + 10 .

1voto

Fazer87 Points 11931

En laissant le "if" vide, le script utilise beaucoup de CPU parce qu'il termine la vérification du "if" et continue très rapidement, encore et encore, parce qu'on ne lui dit pas de s'arrêter et que votre CPU passe les instructions aussi vite que possible.

Je pense que ce que vous cherchez est le sleep commandement :

If colProcesses.Count = 0 The
    WScript.Sleep(10000)
Else

Ce nombre est exprimé en millisecondes (1000 = 1 seconde) et représente la durée de la pause du processus. Dans l'exemple ci-dessus, il se met en pause pendant 10 secondes.

Référence SS64 pour WScript Sleep

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X