Keyword search does not work on all files

G

Guest

Just like XP (SP2), it seems that the Vista does not search for keywords in
"non registered" files.

I have the same problem as "auser" for searching within non-indexed files
(ie. put string "SEARCH" in file called file.dpe and the search system will
never look. Rename the file to file.txt, and lo, the file & string will be
found.

How do I get the keyword search to work properly? For me All files means
"All files" not "all files except a large bunch that we can't be bothered to
process"...

Cheers,
Daniel
 
R

Ronnie Vernon MVP

Open Control Panel/Indexing Options/Advanced Button/File Types Tab. You can
select any or all of the file types there. If the file type you are looking
for is not listed, enter the files extension in the box at the bottom of
that dialog and click the Add New Extension button. Make sure that the
"Index Properties and File Contents" option is checked.

Select the Index Settings Tab and click the Rebuild Button.
 
R

Ronnie Vernon MVP

Yes, and let us know how long it takes to accomplish this.
You might also want to call Guinness and apply for the world record
for collecting this many file types. :)
 
G

Guest

This would only take about 2 minutes with a simple Perl script. I do
programming, and I work with many file types and generate many file types, so
I would prefer to have an option to search all files.

Anyway, I found a solution. Since I have an OpenBSD server here, I just copy
and paste ALL files from whatever directory I want to search over gigabit lan
to the OpenBSD machine, then I use "grep" to find what I want. Still millions
of times faster than adding them in one by one (which I tried for a few
minuts before giving up.)
 
G

Guest

Holy What!!!! Is this the official solution? Can a real search tool (like the
XP search assistant) be installed?

I hate being second-guessed. I thought that "All files" meant "all files"
and not "all files that MS thinks you should search"... I'm not impressed...

OK, so imagine that I go through this rather than installing grep (horror of
horrors, having to install a Linux tool on Windows to get the job done... not
a good sign), I now have to go through the complete list and make sure that
the "index properties and contents" box is selected for all file extensions
and hope that these settings are used even if the indexer is not activated?

This seems seems a most user unfriendly way of doing things, and a massive
waste of time to boot :(

Cheers,
Daniel
 
G

Guest

You can try http://www.wingrep.com/ (Windows Grep, which is very good), or
MS-DOS "findstr" that comes with Vista/XP (not very powerful), or some other
3rd party grep tool.

Or you can download Perl for windows and use the provided script (not very
powerful. just whipped it up in a few minutes and did some minor testing)
http://www.activestate.com/store/productdetail.aspx?prdGuid=81fbce82-6bd5-49bc-a915-08d58c2648ca

#---BEGIN SCRIPT-------------------------------------------------------------
# Usage: perl findtext.pl <regular expression (perl format)> <search path>
#
# Example (see http://www.comp.leeds.ac.uk/Perl/matching.html for regex info):
#
# perl findtext.pl "Administrator" C:\
#
# Output:
#
# <file>:<line number>:<single space><line where regex was found>

use strict;

# Searches for regex in given file.
sub FindString($ $)
{
my $regex = $_[0];
my $file = $_[1];

my $lineNumber = 1;
open(my $SRC, "<$file");
while(<$SRC>) {
if(/$regex/) {
if(/[\x00-\x08\x0B\x0C\x0E-\x1F\x80-\xFF]/) {
print "binary file \"$file\" matches\n";
return;
} else {
print "$file:$lineNumber: $_";
}
}
++$lineNumber;
}
}

# Searches for files in given path and goes into sub directories recursively.
sub Search($ $)
{
my $regex = $_[0];
my $path = $_[1];

$path =~ s/\\$//;
$path .= "\\";

my @files = split(/\n/, `dir /b \"$path\"`);

my @folders;
foreach my $file (@files) {
my $fullPath = $path . $file;
if(-d $fullPath) {
Search($regex, $fullPath);
} else {
FindString($regex, $fullPath);
}
}
}

# Main.
{
if(@ARGV != 2) {
print "usage: $0 <regular expression> <search path>\n" .
"\nExample (see http://www.comp.leeds.ac.uk/Perl/matching.html " .
"for regex info):\n" .
"\n\tperl findtext.pl \"Administrator\" \"C:\\Windows\"\n" .
"\nOutput:\n" .
"\n\t<file>:<line number>:<single space><line where regex was found>\n";
exit 1;
}

my $regex = $ARGV[0];
my $path = $ARGV[1];
Search($regex, $path);
}
#---END SCRIPT---------------------------------------------------------------
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top