vbs taskkill 按名称

Posted

技术标签:

【中文标题】vbs taskkill 按名称【英文标题】:vbs taskkill by name 【发布时间】:2016-12-04 07:21:24 【问题描述】:

我正在尝试找到如何使用它的标题关闭进程。

我找到了命令:

taskkill /fi "WINDOWTITLE eq the_title_of_the_windows"

而且效果很好。

当我尝试时:

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

我得到一个错误,它不会编译。

关于如何在这一行中使用“符号”有什么想法吗?

【问题讨论】:

【参考方案1】:

为了在另一对双引号中使用双引号,你需要使用""而不是",因为如果你使用一个引号",它将被认为是文本的结尾在第一个和第二个引号之间

所以,你的代码应该是这样的:

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

希望有帮助:)

【讨论】:

你试过计算器的例子吗?你得到什么错误? 抱歉我的错误,我没有完全理解它:) 再次感谢【参考方案2】:

如果您使用Run 执行命令行,您会发现屏幕上弹出丑陋的dos 窗口,以避免使用以下两种方式之一:

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

【讨论】:

【参考方案3】:

或者,您可以尝试以下代码: 此代码将从任务管理器中选择任务并关闭进程。 复制粘贴“.vbs”文件中的代码并使用 call 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")

【讨论】:

以上是关于vbs taskkill 按名称的主要内容,如果未能解决你的问题,请参考以下文章

windows命令——taskkill

window下用taskkill杀死进程

vbs脚本无法使用循环和超时

taskkill终止进程的PID

Taskkill /PID 在 GitBash 中不起作用

taskkill 实用程序的退出代码是啥?