Posso eseguire una ricerca del contenuto di file "una tantum" in Windows Server 2008 senza aggiungere la cartella all'indice?


9

Posso cercare file che contengono una stringa specifica in una cartella se quella cartella non si trova nell'indice di ricerca?

Quindi, supponiamo che la cartella 'textFiles' non sia nell'indice. Vado a questa cartella in Esplora risorse. Digito '.ini' nella casella di ricerca Voglio vedere un elenco di risultati contenente 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

Non ho l'autorizzazione per aggiungere cartelle all'indice di Windows e non ho l'autorizzazione per installare o eseguire alcun eseguibile che non è stato fornito con il server o con le applicazioni approvate.

Sarei felice con una soluzione da riga di comando nativa di Windows, se necessario.

Risposte:


7

Puoi farlo con lo strumento da riga di comando findstr.exe fornito da Microsoft.

  1. Apri un prompt dei comandi e vai a c: \ textfiles

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

    nota: è possibile aggiungere / S per cercare in tutte le sottodirectory

Dettagli completi su 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.

Vedo cosa hai fatto lì ... : D
Tamara Wijsman,

Grazie! Avrei dovuto pensarci io stesso. Premio assegnato
G-.

Cosa ho fatto? ..
G-.

1
@ G- .: Questo si riferiva a Jeremy, al modo in cui usava un approccio "intelligente @ $ #" mentre arrivavamo con soluzioni meno fattibili a questo. È sempre bello avere una terza persona che si avvicina e toglie l'osso (generosità) dagli altri che stanno combattendo ...
Tamara Wijsman

1

La soluzione più semplice è disattivare momentaneamente la ricerca di Windows , se si dispone delle autorizzazioni:

  1. net stop wsearch

  2. Fai la tua ricerca nella cartella di Windows Explorer, cercherà senza indice.

  3. net start wsearch

Mentre questo funziona per le cartelle di piccole dimensioni, potresti riscontrare problemi con quelle più grandi.

Un'alternativa per la ricerca del contenuto del file

Windows Grep si basa grepsull'idea di Linux , fornendo una GUI che consente di vedere le linee corrispondenti; questo ti permette di cercare rapidamente i file cercando le varie occorrenze e il loro contesto:

Fornisce alcune opzioni per la ricerca, quindi si adatta anche a cartelle più grandi o più complesse:

Ha anche una procedura guidata semplice se non ti preoccupi di vedere tutte le impostazioni e puoi configurare la modalità di visualizzazione dei risultati del testo (numeri di riga, mostra parte / intera riga, carattere fisso, ...)

Un'alternativa per la ricerca di nomi di file

Cerca Tutto è uno dei più piccoli motori di ricerca per Windows ed è quindi facile da recuperare ed eseguire, ha un'interfaccia utente molto pulita e semplice che ti consente di indicizzare molto rapidamente i file e cercare tra di loro. Ha un utilizzo minimo delle risorse e aggiorna in tempo reale se lo tieni aperto, quindi si adatta anche come sostituto di Ricerca di Windows se vuoi ...

Ho un totale di 904.108 file e cartelle che è parecchio rispetto al solito utente e quando scrivo qualcosa del genere Super Userviene visualizzato immediatamente . Anche l'indicizzazione non richiede molto tempo; quindi, si tratta solo di aprirlo in attesa di qualche secondo e avere una ricerca istantanea a portata di mano.

Ad esempio, potresti mostrare tutti gli eseguibili in una cartella come questa: *.exe "C:\Program Files"


Mentre Cerca Tutto è meraviglioso quando funziona, non esegue ricerche di testo come richiesto dal poster. Ha anche un limite integrato di oltre 1 milione di informazioni sul numero di file sul disco che è in grado di gestire, oltre il quale diventa inutilizzabile e inoltre, a meno che non sia in esecuzione con Windows, l'inizializzazione del database di ricerca potrebbe richiedere parecchio tempo. Nel mio contatto con lo sviluppatore per quanto riguarda questi problemi, ha indicato che lo sviluppo è stato interrotto ma non intende renderlo open source.
harrymc,

Hai eseguito la ricerca di tutto sul nostro file server a 64 bit e che funziona ancora, dov'è esattamente il limite di cui stai parlando? Windows Grep sembra essere un salvatore? Parliamo di completezza su ipotesi casuali? Sembri pensare che non essere completo porti a una qualità superiore? Condider, che fine? Quel gioco di medicina a cui stai tentando di giocare? Noioso, eh? Qualità> Quantità .
Tamara Wijsman,

Forse dovresti anche dire al poster perché usare grep per cercare '.ini' non è una buona idea.
harrymc,

@harrymc: Perché stiamo cercando contenuti qui, contenuti preziosi ...
Tamara Wijsman,

2
Grazie per il vostro parere. Tuttavia, come detto, non posso installare ulteriori eseguibili sul server. "wsearch" non sembra essere un servizio valido sulla mia installazione.
G-.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.