我是 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
是的。很简单。反引号,而不是单引号。