Передайте PID из списка задач в taskkill, чтобы убить процесс при помощи DLL-файлов, которые он держит открытыми.

Сценарий Windows Нуб здесь. Скажем, у меня есть имя.dll, которое мне нужно удалить или скопировать, и я получаю классическую ошибку "Файл используется другим процессом...". Я знаю, что могу запустить список задач с ключом /m и передать ему имя DLL. Затем я могу получить PID для процессов и убить их с помощью taskkill.

Как я могу сделать это за один шаг в командном файле?

4 ответа

Решение

Напоминание: в командном файле вам нужно будет использовать двойной "%%" вместо одного

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

FOR /F "маркеры usebackq = 2 skip = 2" %% i IN (TASKLIST /FI "IMAGENAME eq tomcat6.exe") DO taskkill / F / PID %% i

автоматически убьет процесс кота.

Goyuix,

Я не могу получить результаты анализа списка задач для анализа. FOR /F "usebackq tokens=2 skip=2" %i IN ('tasklist /m winsta.dll') DO echo %i Команда Tasklist сама по себе в порядке, но цикл не распознает результаты списка задач. Скорее, это похоже на разбор строки. Я могу вывести результаты списка задач в файл и проанализировать их в цикле, но я подумал, что, возможно, упускаю что-то простое.

Ага. просто. обратная кавычка, не одиночная кавычка.

Другие вопросы по тегам