windows findstr.exe 不工作
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/3933846/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
findstr.exe is not working
提问by Rites
My system has findstr.exe but when I try to execute it, it gives me the following error
我的系统有 findstr.exe 但是当我尝试执行它时,它给了我以下错误
FINDSTR: Bad command line
Tried so many things but unable to fix. I need to use regex in my batch script.
尝试了很多东西,但无法修复。我需要在批处理脚本中使用正则表达式。
Any other suggestion?
还有什么建议吗?
采纳答案by paxdiablo
You need to at least give it some strings to look for. That error message is the one you get if it doesn't think you've provided a search string (everything else is optional):
你至少需要给它一些字符串来寻找。如果它认为您没有提供搜索字符串(其他所有内容都是可选的),则会收到该错误消息:
C:\Documents and Settings\Pax> findstr /? 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 \ Word position: end of word For full information on FINDSTR regular expressions refer to the online Command Reference.
For example, this shows how you can use regular expressions:
例如,这显示了如何使用正则表达式:
C:\Documents and Settings\Pax> type qq.cmd @setlocal enableextensions enabledelayedexpansion @echo off set startdir=%cd% set temp=%startdir% set folder= :loop if not "x%temp:~-1%"=="x/" ( set folder=!temp:~-1!!folder! set temp=!temp:~1,-1! goto :loop ) echo.startdir = %startdir% echo.folder = %folder% endlocal
C:\Documents and Settings\Pax> findstr d.r% qq.cmd set temp=%startdir% echo.startdir = %startdir% echo.folder = %folder%
C:\Documents and Settings\Pax> findstr FINDSTR: Bad command line
回答by live-love
For anyone else who is struggling with this, try this simple syntax for a start:
对于正在为此苦苦挣扎的其他人,请尝试使用以下简单的语法:
findstr /s /i hello *.*
(ignore case, search all subdirectories in current folder)
(忽略大小写,搜索当前文件夹下的所有子目录)
回答by Vantomex
Of course, you didn't specify any command after FINDSTR
command. Type FINDSTR /?
for help.
当然,你没有在FINDSTR
命令后指定任何命令。键入FINDSTR /?
寻求帮助。
This an example how to use FINDSTR
command:
这是如何使用FINDSTR
命令的示例:
FINDSTR /R /C:"your_regex" filename.txt
回答by The Archetypal Paul
That's what findstr says when you give it no command line arguments. Try
这就是 findstr 在您不提供命令行参数时所说的内容。尝试
findstr/?