¿Puedo hacer una búsqueda de contenido de archivos "única" en Windows Server 2008 sin agregar la carpeta al índice?


9

¿Puedo buscar archivos que contengan una cadena específica en una carpeta si esa carpeta no está en el índice de búsqueda?

Entonces, digamos que la carpeta 'textFiles' no está en el índice. Navego a esta carpeta en el Explorador de Windows. Escribo '.ini' en el cuadro de búsqueda. Quiero ver una lista de resultados que contiene solo '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

No tengo permiso para agregar carpetas al índice de Windows y no tengo permiso para instalar o ejecutar ningún ejecutable que no se envíe con el servidor o las aplicaciones aprobadas.

Estaría contento con una solución de línea de comandos nativa de Windows si es necesario.

Respuestas:


7

Puede hacer esto con la herramienta de línea de comandos findtr.exe proporcionada por Microsoft.

  1. Abra un símbolo del sistema y navegue hasta c: \ archivos de texto

  2. ejecutar comando findstr /L /M /C:"ini" *.*

    nota: puede agregar / S para buscar todos los subdirectorios

Detalles completos 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.

Veo lo que hiciste allí ... : D
Tamara Wijsman

¡Gracias! Debería haber pensado en eso yo mismo. Recompensa otorgada
G-.

Que hice ..
G-.

1
@ G- .: Eso se refería a Jeremy, cómo él usó un enfoque "inteligente @ $ #" mientras veníamos con soluciones menos factibles para esto. Siempre es bueno tener una tercera persona que venga y quite el hueso (recompensa) de los otros que están peleando ...
Tamara Wijsman

1

La solución más fácil es desactivar Windows Search momentáneamente , si tiene permisos:

  1. net stop wsearch

  2. Haga su búsqueda en la carpeta en el Explorador de Windows, buscará sin índice.

  3. net start wsearch

Si bien esto funciona para carpetas pequeñas, puede encontrar problemas con las más grandes.

Una alternativa para buscar contenidos de archivos

Windows Grep se basa en la grepidea de Linux , al proporcionar una GUI que le permite ver líneas coincidentes; Esto le permite mirar rápidamente a través de los archivos en busca de las diversas ocurrencias y su contexto:

Proporciona algunas opciones para la búsqueda, por lo que también encajaría en carpetas más grandes o más complejas:

También tiene un asistente fácil si no se molesta en ver todas las configuraciones, y puede configurar cómo se muestran los resultados del texto (números de línea, mostrar parte / línea completa, fuente fija, ...)

Una alternativa para buscar nombres de archivos

Search Everything es uno de los motores de búsqueda más pequeños para Windows y, por lo tanto, es fácil de buscar y ejecutar, tiene una interfaz de usuario muy limpia y simple que le permite indexar archivos rápidamente y buscar entre ellos. Tiene un uso mínimo de recursos y se actualiza en tiempo real si lo mantiene abierto, por lo que incluso sirve como reemplazo de Windows Search si desea ...

Tengo un total de 904.108 archivos y carpetas, que es bastante en comparación con el usuario habitual, y cuando escribo algo así, Super Userse muestra al instante . La indexación tampoco lleva mucho tiempo; entonces, es cuestión de abrirlo esperando unos segundos y tener una búsqueda instantánea en la punta de sus dedos.

Como ejemplo, podría mostrar todos los ejecutables en una carpeta como esta: *.exe "C:\Program Files"


Si bien Search Everything es maravilloso cuando funciona, no realiza búsquedas de texto como lo exige el póster. También tiene un límite incorporado de algo más de 1 millón en el número de archivos en el disco que puede manejar, más allá del cual se vuelve inutilizable, y también, a menos que se ejecute con Windows, puede tomar bastante tiempo inicializar su base de datos de búsqueda. En mi contacto con el desarrollador con respecto a estos problemas, indicó que el desarrollo se detuvo, pero no tiene la intención de hacerlo de código abierto.
harrymc

Ejecuté Search Everything en nuestro servidor de archivos de 64 bits y eso todavía funciona, ¿dónde está el límite exacto del que estás hablando? Windows Grep parece ser un salvador? ¿Hablamos de completitud sobre suposiciones aleatorias? ¿Parece pensar que no ser completo conduce a una mayor calidad? Condider, ¿qué más? ¿Ese juego de medicina que estás intentando jugar? Aburrido, ¿eh? Calidad> Cantidad .
Tamara Wijsman

Tal vez también debería decirle al cartel por qué usar grep para buscar '.ini' no es una buena idea.
harrymc

@harrymc: Porque estamos buscando contenido aquí, contenido valioso ...
Tamara Wijsman

2
Gracias por tu consejo. Sin embargo, como se mencionó, no puedo instalar ejecutables adicionales en el servidor. "wsearch" no parece ser un servicio válido en mi instalación.
G-.
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.