Welcome guest. Before posting on our computer help forum, you must register. Click here it's easy and free.

Author Topic: Question about FINDSTR command  (Read 3821 times)

0 Members and 1 Guest are viewing this topic.

lwkt

    Topic Starter


    Rookie

    Question about FINDSTR command
    « on: August 28, 2009, 01:21:38 AM »
    When using the following code to check  about the content of a text file (test.txt),
    I get a blank screen and to quit by cntrl+C.

    @echo off
    findstr ^/ test.txt > nul
    if %errorlevel%==0 (
    echo Found!
    ) else (
    echo No matches found
    )
    pause
    exit

    It works fine for ^\, ^| and ^?

    Any idea about the problem?

    Thanks,
    Thomas

    Dusty



      Egghead

    • I could if she would, but she won't so I don't.
    • Thanked: 75
    • Experience: Beginner
    • OS: Windows XP
    Re: Question about FINDSTR command
    « Reply #1 on: August 28, 2009, 01:57:26 AM »
    Try:

    Findstr /C:/ Test.txt > Nul

    The others (\ ?) will probably work without being escaped, the pipe char will always have to be escaped.

    Good luck.

    « Last Edit: August 28, 2009, 02:17:24 AM by Dusty »
    One good deed is worth more than a year of good intentions.

    lwkt

      Topic Starter


      Rookie

      Re: Question about FINDSTR command
      « Reply #2 on: August 28, 2009, 04:00:46 AM »
      Yes, it works perfect.

      May I know the reaon to add c:/  ?

      Thanks,
      Thomas


      Dusty



        Egghead

      • I could if she would, but she won't so I don't.
      • Thanked: 75
      • Experience: Beginner
      • OS: Windows XP
      Re: Question about FINDSTR command
      « Reply #3 on: August 28, 2009, 04:23:15 AM »
      In Findstr /C: is a switch and the following / is the string to be found as a literal.  Don't confuse the switch /C: with the partition C:\

      Entered at the Command Prompt Findstr/? shows:
      Quote
      Searches for strings in files.

      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 occurances 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.

      Hope this helps.
      « Last Edit: August 28, 2009, 04:33:37 AM by Dusty »
      One good deed is worth more than a year of good intentions.

      lwkt

        Topic Starter


        Rookie

        Re: Question about FINDSTR command
        « Reply #4 on: August 28, 2009, 04:35:58 AM »
        Got it !! Thanks.