Как мне убить всех program.exe
экземпляры, которые в настоящее время открыты через общий сетевой ресурс Windows?
Я знаю, как составить список открытых файлов net files | Findstr "program.exe"
но как тогда его убить?
В Linux я бы набрал:
kill -9 `pidof program.exe`
Что эквивалентно этому в Windows?
Если в вашей версии Windows есть powershell (если нет, вы можете загрузить и установить с сайта Microsoft), это тоже очень просто
get-process "program.exe" | stop-process -force -confirm:$false
Смотри сюда: http://support.microsoft.com/kb/290585/en-us
Я считаю, что это все еще применимо к текущим версиям Windows или, по крайней мере, должно направить вас в правильном направлении.
Командная строка:
for /f "skip=4 tokens=1" %a in ('net files') do net files %a /close
Пакетный файл:
for /f "skip=4 tokens=1" %%a in ('net files') do net files %%a /close
tskill.exe (встроенный или, возможно, в комплекте ресурсов) или pskill.exe из sysinternals, который, как администратор Windows, должен иметь на USB-ключе и в общей сетевой папке.
Кроме того, не забудьте указать, над какой версией Windows вы работаете - это может повлиять на чей-то ответ - хотя, скорее всего, не для этого вопроса.