Procura por todas as pastas do Windows contendo um único arquivo (ao contrário de 2 + arquivos)?

2

Tipo de parâmetro ímpar, mas seria útil se eu pudesse executar uma pesquisa que retornasse apenas pastas que contivessem um único arquivo. Pastas com 2 ou mais arquivos não são retornadas. Isso pode ser feito no windows? Eu também poderia viver com uma pesquisa que retornou os arquivos em si.

    
por CreeDorofl 28.12.2011 / 16:55

1 resposta

3

Uma maneira de fazer isso é usar o script interno do Windows:

Dois arquivos de texto simples precisam ser criados em uma única pasta:

search.vbs com conteúdo (basicamente retirado de amostras de código, modificado ligeiramente por mim):

strDir = "i:\"
ignoreFolderCount = false

'*********************

set FSO = createobject("Scripting.FileSystemObject")

Set objDir = FSO.GetFolder(strDir)
getInfo objDir, ignoreFolderCount


'**********************
Sub getInfo(pCurrentDir, ignoreFolderCount)

   For Each aItem In pCurrentDir.SubFolders
      getInfo aItem, ignoreFolderCount
   Next

   if pCurrentDir.Files.Count <= 1 then
      if pCurrentDir.Subfolders.Count = 0 or ignoreFolderCount then 
         wscript.echo pCurrentDir
      end if
   end if
End Sub

search_launch.bat com conteúdo:

echo off
echo "Running process..."
cscript.exe search.vbs > search_results.txt
echo "Process complete"
pause

As duas primeiras linhas do script de pesquisa usam um caminho de pasta (a mudança é adequada) e a decisão de ignorar pastas com um arquivo que TAMBÉM tem uma subpasta. O restante apenas pesquisa recursivamente pastas e verifica a contagem de arquivos.

O arquivo em lote search_launch iniciará o script usando o console (e não o gui do windows) e redirecionará a saída (os caminhos das pastas) para um arquivo de texto chamado search_results.txt . Este estará vazio ou terá os nomes de quaisquer pastas que correspondam aos seus critérios.

Eu recebi um "erro de acesso negado" ao usar o c:\ (provavelmente precisa executar o arquivo em lote como admin), e isso provavelmente não detecta arquivos ocultos.

    
por 28.12.2011 / 18:26