Здесь нет сценариев Windows. Скажем, у меня есть имя .dll, которое мне нужно удалить или скопировать, и я получаю классическую ошибку «Файл используется другим процессом ...». Я знаю, что могу запустить список задач с переключателем / m и передать ему имя dll. Затем я могу получить PID для процессов и убить их с помощью taskkill.
Как я могу сделать это за один шаг в пакетном файле?
Напоминание: в пакетном файле вам нужно будет использовать двойной "%%" вместо одиночного
FOR /F "usebackq tokens=2 skip=2" %i IN (`tasklist /m winsta.dll`) DO taskkill /PID %i
FOR / F "usebackq tokens = 2 skip = 2" %% i IN (
TASKLIST /FI "IMAGENAME eq tomcat6.exe"
) DO taskkill / F / PID %% i
автоматически убьет процесс tomcat.
Goyuix,
Кажется, я не могу получить результаты списка задач для анализа. FOR / F "usebackq tokens = 2 skip = 2"% i IN ('tasklist / m winsta.dll') DO echo% i Сама по себе команда tasklist хороша, но цикл не распознает результаты tasklist. Скорее похоже, что он разбирает строку. Я могу вывести результаты списка задач в файл и проанализировать с помощью цикла, но я подумал, что мне может не хватать чего-то простого.
Ага. просто. обратная цитата, а не одинарная кавычка.