VBS TaskKill по имени

Я пытаюсь найти способ закрыть процесс, используя его заголовок.

Я нашел команду:

taskkill /fi "WINDOWTITLE eq the_title_of_the_windows"

и это прекрасно работает.

Когда я пытаюсь:

oShell.Run "taskkill /fi "WINDOWTITLE eq the_title_of_the_windows"", , True

Я получаю ошибку, и она не скомпилируется.

Есть идеи, как использовать этот символ в этой строке?

2 ответа

Решение

Чтобы использовать двойные кавычки внутри другой пары двойных кавычек, необходимо использовать "" вместо просто "потому что если вы используете одну кавычку " это будет считаться концом текста между первой и второй кавычками

Итак, ваш код должен выглядеть так:

oShell.Run "taskkill /fi ""WINDOWTITLE eq the_title_of_the_windows""", , True

Следующий пример завершит все процессы с заголовком окна (Калькулятор):

Dim oShell
Set oShell = WScript.CreateObject ("WScript.Shell")
oShell.Run "taskkill /fi ""WINDOWTITLE eq Calculator""", , True

Надеюсь, это поможет:)

В качестве альтернативы вы можете попробовать следующий код: этот код выберет задачу из диспетчера задач и закроет процесс. Скопируйте вставленный код в файл ".vbs" и используйте вызов KillAll("your task name.exe")

Function KillAll(ProcessName)
    Dim objWMIService, colProcess
    Dim strComputer, strList, p
    Dim i :i= 0 
    strComputer = "."
    Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") 
    Set colProcess = objWMIService.ExecQuery ("Select * from Win32_Process Where Name like '" & ProcessName & "'")
    For Each p in colProcess
        p.Terminate     
    i = i+1        
    Next
    MsgBox("Total Instance :: " &i& " of "&ProcessName&" is killed")
End Function

call KillAll("MicrosoftEdge.exe")

Если вы используете Run чтобы выполнить командную строку, вы увидите на экране всплывающее окно с ужасными досками, чтобы избежать этого, используйте один из двух способов:

Dim oShell
Set oShell = WScript.CreateObject ("WScript.Shell")
oShell.Exec "taskkill /fi ""WINDOWTITLE eq Calculator"""

ИЛИ ЖЕ

Dim oShell
Set oShell = WScript.CreateObject ("WScript.Shell")
oShell.Run "taskkill /fi ""WINDOWTITLE eq Calculator""",0,False
Другие вопросы по тегам