Depois de muita pesquisa, devo perguntar:
- Existe uma maneira de obter uma lista de pastas – não de arquivos – e possivelmente seus caminhosque são abertos no Windows 7?
Gostaria de obter pastas do sistema de arquivos e não de janelas de aplicativos.
tenteiProcessExplorer da SysInternalsem sucesso. O mais próximo que cheguei foi tirar uma captura de tela do pop-up da barra de tarefas do Windows Explorer.
Responder1
Você poderia usar oLidaraplicativo e, em seguida, filtre os resultados aplicáveis usando oEncontrarcomando para especificar "arquivos" para os tipos de objeto, como alguns dos exemplos abaixo.
Você pode dimensionar esses métodos ainda mais para satisfazer suas necessidades, incluindo e excluindo certos padrões de stringspara mostrar apenas tipos de objetos de pasta e excluir certas extensões de arquivo.
Exemplos de sintaxe
O exemplo abaixo mostrará apenas resultados contendo a string "arquivo" que inclui o espaço inicial e final antes e depois das vírgulas ao lado dos caracteres "arquivos"
handle64 -a | FIND /I " file "
Restringindo mais
Além disso, você pode adicionar mais FIND
filtros de comando para restringir ainda mais os resultados, dependendo de seus critérios e canalizar cada FIND
comando para o próximo FIND
comando para trazer de volta as strings correspondentes incluídas e excluídas.
FIND /I "<string>"
: significa ignorar a distinção entre maiúsculas e minúsculas dos caracteres e mostrar resultados contendo apenas a string correspondente específica.FIND /I /V "<string>"
: adicionar a/V
opção exclui todas as linhas que contêm a string correspondente específica.
O exemplo abaixo mostrará apenas os resultados contendo a string " file " (assim como o exemplo acima) e, em seguida, esses resultados serão transferidos para o próximo
FIND
comando para mostrar apenas os resultados restantes contendo os caracteres ":\" (dois pontos e barra invertida).handle64 -a | FIND /I " file " | FIND /I ":\"
O abaixo mostrará apenas resultados contendo a string " file " e esses resultados canalizados para o próximo
FIND
comando e esses resultados canalizados para o próximo comando find com a/V
opção para excluir e não mostrar resultados que correspondam a esse padrão.handle64 -a | FIND /I " file " | FIND /I ":\" | FIND /I /V "C:\Windows"
Dimensionamento e outras ferramentas
Você pode continuar dimensionando os comandos aplicáveis, canalizando um para o próximo para fazer exclusões adicionais, etc., como excluir extensões de arquivo ".bin" e assim por diante, até obter os resultados desejados que atendam aos critérios necessários.
Você provavelmente poderia usarPowerShelle/ouENCONTRARpara fazer isso com mais eficiência, mas não tenho tempo para fazer muitos testes agora, então pensei em deixar esse método rápido para você, que pode atender às suas necessidades.
Lidar
Introdução
Já se perguntou qual programa tem um determinado arquivo ou diretório aberto? Agora você pode descobrir. Handle é um utilitário que exibe informações sobre identificadores abertos para qualquer processo no sistema. Você pode usá-lo para ver os programas que possuem um arquivo aberto ou para ver os tipos de objetos e nomes de todos os identificadores de um programa.
Você também pode obter uma versão baseada em GUI deste programa,Explorador de processos, aqui na Sysinternals.
Instalação
Você executa o Handle digitando "handle". Você deve ter privilégios administrativos para executar o Handle.
Uso
O identificador tem como objetivo procurar referências de arquivos abertos, portanto, se você não especificar nenhum parâmetro de linha de comando, ele listará os valores de todos os identificadores no sistema que se referem a arquivos abertos e os nomes dos arquivos. Também são necessários vários parâmetros que modificam esse comportamento.
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.
Lidar com saída
Quando não está no modo de pesquisa (habilitado pela especificação de um fragmento de nome como parâmetro), Handle divide sua saída em seções para cada processo para o qual está imprimindo informações de identificador. Linhas tracejadas são usadas como separador, logo abaixo das quais você verá o nome do processo e seu ID do processo (PID). Abaixo do nome do processo estão listados os valores do identificador (em hexadecimal), o tipo de objeto ao qual o identificador está associado e o nome do objeto, se houver.
Quando no modo de pesquisa, Handle imprime os nomes e IDs dos processos listados no lado esquerdo e os nomes dos objetos que tiveram correspondência estão à direita.