Can I do a "one-time" file content search in Windows Server 2008 without adding the folder to the index?
Can I search for files which contain a specific string in a folder if that folder is not in the search index?
So, lets say folder 'textFiles' is not in the index. I navigate to this folder in Windows Explorer. I type '.ini' in the search box I want to see a result list containing only '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
I do not have permission to add folders to the Windows index and I do not have permission to install or run any executables that did not ship with the server or approved applications.
I'd be happy with a Windows native command line solution if necessary.
You can do this with the command line tool findstr.exe provided by Microsoft.
-
Open a command prompt and navigate to c:\textfiles
-
run command
findstr /L /M /C:"ini" *.*
note: you can add /S to search all subdirectories
Full details on 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.
The easiest solution is to turn off Windows Search momentarily, if you have permissions:
net stop wsearch
Do your search in the folder in Windows Explorer, it will search without index.
net start wsearch
While this works for small folders, you might encounter problems with larger ones.
An alternative for searching file contents
Windows Grep bases itself of the linux grep
idea, by providing a GUI that allows you to see matching lines; this allows you to quickly look through files looking for the various occurences and their context:
It provides quite some options for searching, so would fit for larger or more complex folders too:
It also has an easy wizard if you don't bother seeing all the settings, and you can configure how the text results display (line numbers, show part/whole line, fixed font, ...)
An alternative for searching file names
Search Everything is one of the smallest search engine for Windows and is thus easy to fetch and run, it has a very clean and simple user interface allowing you to very quickly index files and search among them. It has a minimal resource usage and does real-time updating if you keep it open, so it even fits as a replacement to Windows Search if you want to...
I have a total of 904,108 files and folders which is quite a lot compared to the usual user, and when I type something like Super User
it displays that instantly. Indexing doesn't take long either; so, it's a matter of just opening it up waiting a few seconds and have instant search at your finger tips.
As an example, you could show all executables in a folder like this: *.exe "C:\Program Files"