将 tasklist 中的 PID 传递到 taskkill 中,以通过其保持打开的 .dll 来终止进程

将 tasklist 中的 PID 传递到 taskkill 中,以通过其保持打开的 .dll 来终止进程

我是 Windows 脚本新手。假设我有一个需要删除或复制的 .dll 的名称,并且我得到了经典的“该文件正在被另一个进程使用...”错误。我知道我可以使用 /m 开关运行 tasklist 并向其传递 dll 名称。然后我可以获取进程的 PID 并使用 taskkill 终止它们。

如何在批处理文件中一步完成此操作?

答案1

提醒:在批处理文件中,您需要使用双“%%”而不是单个

FOR /F "usebackq tokens=2 skip=2" %i IN (`tasklist /m winsta.dll`) DO taskkill /PID %i

答案2

FOR /F “usebackq tokens=2 skip=2” %%i IN ( TASKLIST /FI "IMAGENAME eq tomcat6.exe") DO taskkill /F /PID %%i

会自动杀死tomcat进程。

答案3

Goyuix,

我似乎无法解析任务列表结果。FOR /F "usebackq tokens=2 skip=2" %i IN ('tasklist /m winsta.dll') DO echo %i tasklist 命令本身没问题,但循环无法识别任务列表结果。相反,它似乎正在解析字符串。我可以将任务列表结果输出到文件并使用循环进行解析,但我认为我可能遗漏了一些简单的东西。

答案4

是的。很简单。反引号,而不是单引号。

相关内容