Возможно, вы можете указать Проводнику показать путь в строке заголовка, а затем использовать фильтр WINDOWTITLE
чтобы убить его, основываясь на этом?
- Открытый проводник
- Нажмите Alt
- Нажмите «Инструменты (пункт меню)»
- Нажмите «Параметры папки ... (пункт меню)»
- Нажмите «Просмотр (вкладка страницы)» в "Параметры папки"
- Нажмите, чтобы выбрать «Показать полный путь в строке заголовка (только для классической темы)» в "Параметры папки"
- Нажмите "Применить" -> "ОК"
Путь не будет отображаться в строке заголовка Explorer с «неклассическими» темами, но он есть (сейчас); это просто не видно
taskkill /F /FI "WINDOWTITLE eq C:\PathToThing\RunningInExplorer\ToRestart*"
Возможно, вам придется временно переключиться на классическую тему, чтобы определить путь / заголовок для экземпляра Explorer, который вы хотите перезапустить.
Не на 100% надежно, но любые окна Explorer, у которых нет этого (частичного) пути в заголовке, будут безопасны, по крайней мере. :)
редактировать:
Поскольку вы хотите получить файл с заголовком «N /A», вам, вероятно, придется использовать командный файл, чтобы можно было маркировать результаты TASKLIST и использовать эти результаты токена, чтобы использовать TASKKIL для уничтожения с помощью PID.
Я нашел ответ на StackOverflow.com, который решает эту проблему:
Из вопроса Taskkill безымянный процесс? это ответ, который включает в себя этот пример пакетного файла:
@echo off
SETLOCAL enabledelayedexpansion
for /f "tokens=*" %%a in ('TASKLIST /V') do (
set s=%%a
set p=!s:~27,5!
set t=!s:~152,3!
if '!t!'=='N/A' ECHO TASKKILL /PID !p! /T
)
Вы захотите изменить команду 'TASKLIST /V', чтобы она была более специфичной для Explorer.exe и тому подобного, но она должна дать вам хорошую отправную точку.