Posso fazer uma pesquisa de conteúdo de arquivo “única” no Windows Server 2008 sem adicionar a pasta ao índice?

9

Posso procurar arquivos que contenham uma string específica em uma pasta, se essa pasta não estiver no índice de pesquisa?

Então, digamos que a pasta 'textFiles' não esteja no índice. Eu navego para esta pasta no Windows Explorer. Eu digito '.ini' na caixa de pesquisa Eu quero ver uma lista de resultados contendo apenas 'b.txt'

FOLDER C:\textFiles\

FILE  a.php  
CONTENT once twice thrice mice moose monkey

FILE b.txt
CONTENT mingle muddle middle.ini banana beer

FILE c.spo
CONTENT sellotape stapler phone book

Eu não tenho permissão para adicionar pastas ao índice do Windows e não tenho permissão para instalar ou executar quaisquer executáveis ​​que não foram fornecidos com o servidor ou aplicativos aprovados.

Eu ficaria feliz com uma solução de linha de comando nativa do Windows, se necessário.

G-.
fonte

Respostas:

5

Você pode fazer isso com a ferramenta de linha de comando findstr.exe fornecida pela Microsoft.

  1. Abra um prompt de comando e navegue até c: \ textfiles

  2. comando de execução findstr /L /M /C:"ini" *.*

    note: você pode adicionar / S para pesquisar todos os subdiretórios

Mais detalhes sobre FINDSTR

  FINDSTR [/B] [/E] [/L] [/R] [/S] [/I] [/X] [/V] [/N] [/M] [/O] [/P] [/F:file]
        [/C:string] [/G:file] [/D:dir list] [/A:color attributes] [/OFF[LINE]]
        strings [[drive:][path]filename[ ...]]

  /B         Matches pattern if at the beginning of a line.
  /E         Matches pattern if at the end of a line.
  /L         Uses search strings literally.
  /R         Uses search strings as regular expressions.
  /S         Searches for matching files in the current directory and all
             subdirectories.
  /I         Specifies that the search is not to be case-sensitive.
  /X         Prints lines that match exactly.
  /V         Prints only lines that do not contain a match.
  /N         Prints the line number before each line that matches.
  /M         Prints only the filename if a file contains a match.
  /O         Prints character offset before each matching line.
  /P         Skip files with non-printable characters.
  /OFF[LINE] Do not skip files with offline attribute set.
  /A:attr    Specifies color attribute with two hex digits. See "color /?"
  /F:file    Reads file list from the specified file(/ stands for console).
  /C:string  Uses specified string as a literal search string.
  /G:file    Gets search strings from the specified file(/ stands for console).
  /D:dir     Search a semicolon delimited list of directories
  strings    Text to be searched for.
  [drive:][path]filename
             Specifies a file or files to search.

Use spaces to separate multiple search strings unless the argument is prefixed
with /C.  For example, 'FINDSTR "hello there" x.y' searches for "hello" or
"there" in file x.y.  'FINDSTR /C:"hello there" x.y' searches for
"hello there" in file x.y.

Regular expression quick reference:
  .        Wildcard: any character
  *        Repeat: zero or more occurrences of previous character or class
  ^        Line position: beginning of line
  $        Line position: end of line
  [class]  Character class: any one character in set
  [^class] Inverse class: any one character not in set
  [x-y]    Range: any characters within the specified range
  \x       Escape: literal use of metacharacter x
  \<xyz    Word position: beginning of word
  xyz\>    Word position: end of word

For full information on FINDSTR regular expressions refer to the online Command
Reference.
Jeremy W
fonte
Eu vi o que você fez lá... : D
Tom Wijsman
Obrigado! Deveria ter pensado nisso sozinha. Recompensa concedida
G-.
O que eu fiz? ..
G-.
1
@ G .: Isso estava se referindo a Jeremy, como ele usou uma abordagem "smart @ $ #" enquanto nós viemos com soluções menos viáveis ​​para isso. É sempre bom ter uma terceira pessoa por perto e tirar o osso (bounty) dos outros que estão lutando ...
Tom Wijsman
1

A solução mais fácil é Desativar o Windows Search momentaneamente , se você tiver permissões:

  1. net stop wsearch

  2. Faça sua busca na pasta no Windows Explorer, ele irá procurar sem indexar.

  3. net start wsearch

Embora isso funcione para pastas pequenas, você pode encontrar problemas com pastas maiores.

Uma alternativa para pesquisar o conteúdo do arquivo

Windows Grep baseia-se do linux grep idéia, fornecendo uma GUI que permite ver as linhas correspondentes; Isso permite que você examine rapidamente os arquivos procurando as várias ocorrências e seu contexto:

Ele oferece algumas opções de pesquisa, por isso cabe também a pastas maiores ou mais complexas:

Ele também tem um assistente fácil se você não se incomodar em ver todas as configurações, e você pode configurar como os resultados do texto são exibidos (números de linha, mostrar parte / linha inteira, fonte fixa, ...)

Uma alternativa para pesquisar nomes de arquivos

Pesquisar tudo é um dos menores mecanismos de busca para Windows e, portanto, é fácil de buscar e executar, possui uma interface de usuário muito simples e limpa, permitindo que você indexe arquivos rapidamente e pesquise entre eles. Ele tem um uso mínimo de recursos e atualiza em tempo real, se você mantê-lo aberto, por isso, ele se encaixa como um substituto para o Windows Search, se você quiser ...

Eu tenho um total de 904.108 arquivos e pastas, o que é bastante comparado ao usuário comum, e quando eu digito algo como Super User mostra que imediatamente . A indexação não demora muito; Então, é só abrir alguns segundos e ter uma pesquisa instantânea nas pontas dos dedos.

Por exemplo, você pode mostrar todos os executáveis ​​em uma pasta como esta: *.exe "C:\Program Files"

Tom Wijsman
fonte
Embora a Pesquisa Tudo seja maravilhosa quando funciona, ela não faz pesquisas de texto conforme exigido pelo pôster. Ele também tem um limite embutido de mais de 1 milhão no número de arquivos no disco que ele pode manipular, além do qual ele se torna inutilizável e, a menos que seja executado com o Windows, pode demorar um pouco para inicializar seu banco de dados de pesquisa. Em meu contato com o desenvolvedor sobre esses problemas, ele indicou que o desenvolvimento parou, mas ele não pretende torná-lo código aberto.
harrymc
Fizemos Pesquisar Tudo em nosso servidor de arquivos de 64 bits e isso ainda funciona, onde está o limite exato do qual você está falando? O Windows Grep parece ser um salvador? Vamos falar de completude sobre suposições aleatórias? Você acha que não estar completo leva a uma qualidade superior? Condider que acabou? Aquele jogo de medicina que você está tentando jogar? Chato, hein? Qualidade & gt; Quantidade .
Tom Wijsman
Talvez você também deva dizer ao pôster por que usar o grep para procurar '.ini' não é uma boa ideia.
harrymc
@harrymc: Porque estamos procurando conteúdo aqui, conteúdo valioso ...
Tom Wijsman
2
Obrigado pelo seu conselho. No entanto, como mencionado, não posso instalar executáveis ​​adicionais no servidor. "wsearch" não parece ser um serviço válido na minha instalação.
G-.