После долгих исследований я должен спросить:
- Есть ли способ получить список папок (не файлов) и, возможно, их путей?которые открываются в Windows 7?
Я хотел бы получить папки из файловой системы, а не из окон приложений.
Я пыталсяProcessExplorer от SysInternalбезуспешно. Самое близкое, что я сделал, это сделал снимок экрана всплывающего окна панели задач для Windows Explorer.
решение1
Вы могли бы использоватьРучкаприложение, а затем отфильтруйте соответствующие результаты с помощьюНаходитькоманда для указания «файлов» для типов объектов, как в некоторых из приведенных ниже примеров.
Вы можете масштабировать эти методы еще больше, чтобы удовлетворить свои потребности, включая и исключая определенные шаблоны строк.для отображения только типов объектов папок и исключения определенных расширений файлов.
Примеры синтаксиса
Ниже будут показаны только результаты, содержащие строку «file», включающую начальный и конечный пробелы до и после запятых рядом с символами «files».
handle64 -a | FIND /I " file "
Сужаем его еще больше
Вы можете дополнительно добавить больше FIND
фильтров команд, чтобы еще больше сузить результаты в зависимости от ваших критериев, и передавать каждую FIND
команду следующей FIND
команде, чтобы вернуть включенные и исключенные совпадающие строки.
FIND /I "<string>"
: означает игнорировать чувствительность к регистру символов и показывать только результаты, содержащие конкретную совпадающую строку.FIND /I /V "<string>"
: добавление/V
переключателя исключает все строки, содержащие определенную совпадающую строку.
Ниже будут показаны только результаты, содержащие строку «file» (как в примере выше), а затем эти результаты будут переданы следующей
FIND
команде, чтобы затем отобразить только оставшиеся результаты, содержащие символы «:\" (двоеточие и обратная косая черта).handle64 -a | FIND /I " file " | FIND /I ":\"
Ниже будут показаны только результаты, содержащие строку «file», и эти результаты будут переданы следующей
FIND
команде, а затем эти результаты будут переданы следующей команде find с переключателем,/V
чтобы исключить и не показывать результаты, соответствующие этому шаблону.handle64 -a | FIND /I " file " | FIND /I ":\" | FIND /I /V "C:\Windows"
Масштабирование и другие инструменты
Вы можете продолжать масштабировать применимые команды, передавая одну за другой, чтобы выполнять дальнейшие исключения и т. д., например, исключать расширения файлов «.bin» и т. д., пока не получите желаемые результаты, соответствующие требуемым критериям.
Вы, вероятно, могли бы использоватьPowerShellи/илиFINDSTRсделать это более эффективно, но у меня сейчас нет времени проводить кучу тестов, поэтому я подумал, что предоставлю вам этот быстрый метод, который может подойти вам.
Ручка
Введение
Вы когда-нибудь задумывались, какая программа открыла определенный файл или каталог? Теперь вы можете это узнать. Handle — это утилита, которая отображает информацию об открытых дескрипторах для любого процесса в системе. Вы можете использовать ее, чтобы увидеть программы, которые открыли файл, или увидеть типы объектов и имена всех дескрипторов программы.
Вы также можете получить версию этой программы с графическим интерфейсом,Обозреватель процессов, здесь, в Sysinternals.
Монтаж
Вы запускаете Handle, набрав "handle". Для запуска Handle у вас должны быть права администратора.
Применение
Handle нацелен на поиск ссылок на открытые файлы, поэтому если не указать никаких параметров командной строки, он выведет список значений всех дескрипторов в системе, которые ссылаются на открытые файлы, и имена файлов. Он также принимает несколько параметров, которые изменяют это поведение.
usage: handle [[-a] [-u] | [-c <handle> [-l] [-y]] | [-s]] [-p <processname>| <pid>> [name] -a Dump information about all types of handles, not just those that refer to files. Other types include ports, Registry keys, synchronization primitives, threads, and processes. -c Closes the specified handle (interpreted as a hexadecimal number). You must specify the process by its PID. WARNING: Closing handles can cause application or system instability. -l Dump the sizes of pagefile-backed sections. -y Don't prompt for close handle confirmation. -s Print count of each type of handle open. -u Show the owning user name when searching for handles. -p Instead of examining all the handles in the system, this parameter narrows Handle's scan to those processes that begin with the name process. Thus: handle -p exp would dump the open files for all processes that start with "exp", which would include Explorer. name This parameter is present so that you can direct Handle to search for references to an object with a particular name. For example, if you wanted to know which process (if any) has "c:\windows\system32" open you could type: handle windows\system The name match is case-insensitive and the fragment specified can be anywhere in the paths you are interested in.
Выходной сигнал ручки
Если режим поиска не включен (включен указанием фрагмента имени в качестве параметра), Handle делит свой вывод на разделы для каждого процесса, для которого он выводит информацию о дескрипторе. В качестве разделителя используются пунктирные линии, сразу под которыми вы увидите имя процесса и его идентификатор процесса (PID). Под именем процесса перечислены значения дескриптора (в шестнадцатеричном формате), тип объекта, с которым связан дескриптор, и имя объекта, если оно есть.
В режиме поиска Handle выводит имена процессов и идентификаторы, перечисленные слева, а имена объектов, для которых обнаружено совпадение, — справа.