Keyword search does not work on all files

Discussion in 'Windows Vista File Management' started by Bpfh, Feb 16, 2007.

  1. Bpfh

    Bpfh 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
     
    Bpfh, Feb 16, 2007
    #1
    1. Advertisements

  2. 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.
     
    Ronnie Vernon MVP, Feb 16, 2007
    #2
    1. Advertisements

  3. Bpfh

    DisplayName Guest

    What if I have 50,000 file types not currently searched? Add them ALL to the
    index?
     
    DisplayName, Feb 18, 2007
    #3
  4. 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. :)
     
    Ronnie Vernon MVP, Feb 18, 2007
    #4
  5. Bpfh

    DisplayName 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.)
     
    DisplayName, Feb 18, 2007
    #5
  6. Glad you were able to resolve the problem. :)
     
    Ronnie Vernon MVP, Feb 19, 2007
    #6
  7. Bpfh

    Bpfh 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
     
    Bpfh, Feb 19, 2007
    #7
  8. Bpfh

    DisplayName 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---------------------------------------------------------------
     
    DisplayName, Feb 20, 2007
    #8
    1. Advertisements

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 (here). After that, you can post your question and our members will help you out.