2017-03-10 1 views
0

Existe-t-il un code pour arrêter un script spécifique? J'ai vu un moyen qui vous permet de terminer tous les scripts en utilisant taskkill.Comment arrêter un script spécifique dans VBScript

Option Explicit 
Dim WshShell 
Set WshShell = WScript.CreateObject("WScript.Shell") 
WshShell.Run "taskkill /f /im Cscript.exe", , True 
WshShell.Run "taskkill /f /im wscript.exe", , True 

Je veux simplement mettre fin à un script spécifique qui dort dans un WScript.Sleep pas chaque script qui exécute à la fois.

Répondre

0

Essayez ci-dessous. Vous devez conserver le ProcessId du processus que vous voulez tuer. Le code ci-dessous ouvre un bloc-notes et le tue. Cet exemple vous montre comment capturer le ProcessId du script quand il a été démarré et ensuite le tuer.

Private Sub KillTest() 
    Dim killCmd 
    Dim pid 

    Set WshShell = CreateObject("WScript.Shell") 
    Set EngineRun = WshShell.Exec("notepad") 
    pid = EngineRun.ProcessID 

    killCmd = "taskkill /pid " & CStr(pid) 
    Set EngineRun = WshShell.Exec(killCmd) 
    Set EngineRun = Nothing 
    Set WshShell = Nothing 
End Sub 
+0

Je ne connais pas très bien VBScript; que signifie ProcessId? Est-ce le code spécifique que je veux terminer? –

+0

ProcessID ou PID est l'identifiant unique attribué par le système d'exploitation à un processus en cours d'exécution. Le code de Mukul devrait être identique au vôtre sauf que vous seriez 'Set'ting' EngineRun' à la valeur de retour de l'exécution de votre script. Vous auriez également besoin d'une logique supplémentaire pour déterminer quand l'heure correcte pour le tuer serait. –

+0

Alors, quelle est la valeur de retour de l'exécution de mon script? Aussi, la partie CreateObject serait-elle nécessaire pour mon script? –