1

Я могу открыть определенную папку с помощью этой команды:

start "" "c:\foldername"

В том же духе, как я могу закрыть одну и ту же папку с помощью командной строки или пакета?

1 ответ1

1

По умолчанию Explorer не порождает отдельные процессы, поэтому вы не можете убить один процесс, не убив все окна, панель задач и все остальное, что делает проводник.

Однако вы можете просто включить открытие окон проводника в своем собственном процессе и внезапно остановить одно окно из командной строки.

Как изменить проводник, чтобы открыть окно в своем собственном процессе?
Доступ к ней отличается для каждой версии Windows, и, поскольку вы забыли упомянуть, какую версию Windows вы используете, я буду считать Windows 10.

В любом окне обозревателя откройте вкладку «Вид», затем справа нажмите «Параметры».

В параметрах проводника перейдите на вкладку «Вид» и в разделе «Дополнительные параметры» найдите параметр, который говорит: Launch folder windows in a separate process

Эту опцию также можно изменить из реестра, но я не знаю ее точное местоположение.

Если вы хотите иметь возможность убить окно по его пути, то вам также нужно изменить следующий параметр: enable Display the full path in the title bar

Этот второй параметр необходим, потому что нам нужно выразить, какое именно окно мы хотим убить, по его заголовку. По умолчанию отображается только имя текущей папки.

Так что если у вас есть C:\Program Files и D:\Program Files, он покажет Program Files для обеих, и если у вас открыты обе папки, 1 команда убьет оба окна.

Тем не менее, как только вы включили это, вы можете использовать taskkill чтобы закрыть это окно.

Чтобы узнать, какую команду вам нужно будет ввести, вы можете использовать tasklist чтобы сначала найти окно. Прелесть TaskList состоит в том, что он использует в основном тот же синтаксис, что и TaskKill. По крайней мере, для того, что мы хотим, это то же самое.

Нахождение окна
Сначала откройте нужное окно, затем откройте командную строку. Сейчас типа

tasklist /V /FI "IMAGENAME eq explorer.exe"

Это скажет вам точно, что вы можете убить.

В вашем случае вы захотите использовать следующее:

tasklist /V /FI "WINDOWTITLE eq C:\Program Files"

если вы хотите убить программные файлы.

Обратите внимание: если у вас открыто несколько окон, имя окна отображается только из последнего окна, которое было активным.

Если вы хотите найти любое окно с открытым путем C:\ в проводнике, вы можете использовать следующую команду:

tasklist /V /FI "IMAGENAME eq explorer.exe" /FI "WINDOWTITLE eq C*"

Обратите внимание, я использую * здесь. Список задач может использовать подстановочный знак, но только ПОСЛЕ поиска. Таким образом, в приведенном выше случае заголовок окна по-прежнему должен начинаться с буквы C, но все остальное необязательно.

Теперь, когда вы узнали, какую команду вы хотите использовать для закрытия окна, замените список задач на taskkill и удалите параметр /V. /V используется только для отображения дополнительной информации, такой как заголовок окна.

Таким образом, чтобы убить последнее открытое окно обозревателя, которое начинается с C, вы можете использовать:

taskkill /FI "IMAGENAME eq explorer.exe" /FI "WINDOWTITLE eq C*"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .