标签: findstr

Windows FINDSTR命令的未记录功能和限制是什么?

Windows FINDSTR命令可怕地记录在案.有一个非常基本的命令行帮助可用FINDSTR /?,或者HELP FINDSTR,但是它非常不合适.在https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/findstr上有更多的在线文档.

有许多FINDSTR功能和限制甚至在文档中都没有暗示.如果没有先前的知识和/或仔细的实验​​,他们也无法预料到.

所以问题是 - 未记录的FINDSTR功能和限制是什么?

此问题的目的是提供许多未记录的功能的一站式存储库,以便:

A)开发人员可以充分利用那里的功能.

B)开发人员不要浪费时间,想知道为什么某些东西看起来不应该起作用.

在回复之前,请确保您知道现有文档.如果HELP涵盖了这些信息,则它不属于此处.

这也不是展示FINDSTR有趣用途的地方.如果逻辑人员可以根据文档预测FINDSTR的特定用法的行为,那么它不属于此处.

同样,如果逻辑人员可以基于任何现有答案中包含的信息预测特定用法的行为,那么再次,它不属于此处.

cmd batch-file findstr

184
推荐指数
4
解决办法
12万
查看次数

正则表达式 - 如何匹配除特定模式之外的所有内容

如何编写正则表达式以匹配任何不符合特定模式的字符串?我面临的情况是我必须匹配(A和~B)模式.

regex findstr

169
推荐指数
4
解决办法
24万
查看次数

如何编写搜索模式以在findstr中包含空格?

我想搜索某个目录中的所有文件以查找语句的出现

  Load frmXYZ
Run Code Online (Sandbox Code Playgroud)

我在Windows 7上使用该findstr命令.我试过了:

  findstr /n Load.*frm *.*
Run Code Online (Sandbox Code Playgroud)

但这给了我不想要的结果,例如:

 If ABCFormLoaded Then Unload frmPQR
Run Code Online (Sandbox Code Playgroud)

所以我试图在它之间放一个空格Load,frm并给出这样的命令:

 findstr /n Load frm *.*
Run Code Online (Sandbox Code Playgroud)

但这只是搜索了所有单词load或所有单词的出现次数frm.我该如何解决这个问题?

regex findstr

33
推荐指数
3
解决办法
4万
查看次数

在findstr中的正则表达式

我正在做一个小字符串验证findstr和它的/r标志,以允许正则表达式.特别是我想验证整数.

正则表达式

^[0-9][0-9]*$
Run Code Online (Sandbox Code Playgroud)

对于非负数而言工作得很好但是因为我现在支持负数而且我试过了

^([1-9][0-9]*|0|-[1-9][0-9]*)$
Run Code Online (Sandbox Code Playgroud)

对于正整数或负整数或零.

正则表达式在理论上运行良好.我在PowerShell中测试了它,它符合我的要求.然而,随着

findstr /r /c:"^([1-9][0-9]*|0|-[1-9][0-9]*)$"
Run Code Online (Sandbox Code Playgroud)

它没有.

虽然我知道findstr没有最先进的正则表达式支持(甚至在Notepad ++之下,这可能是一项相当大的成就),但我希望这些简单的表达式可以工作.

我在这里做错了什么想法?

regex windows command-line findstr

32
推荐指数
2
解决办法
9万
查看次数

为什么findstr不能正确处理案例(在某些情况下)?

在cmd.exe中编写一些最近的脚本时,我需要使用findstr正则表达式 - 客户需要标准cmd.exe命令(没有GnuWin32,Cygwin也不是VBS,也不是Powershell).

我只想知道变量是否包含任何大写字符并尝试使用:

> set myvar=abc
> echo %myvar%|findstr /r "[A-Z]"
abc
> echo %errorlevel%
0
Run Code Online (Sandbox Code Playgroud)

%myvar%设置为abc,实际输出字符串并设置errorlevel为0,表示找到了匹配项.

但是,完整列表变体:

> echo %myvar%|findstr /r "[ABCDEFGHIJKLMNOPQRSTUVWXYZ]"
> echo %errorlevel%
1
Run Code Online (Sandbox Code Playgroud)

确实输出的行,它正确地设置errorlevel为1.

此外:

> echo %myvar%|findstr /r "^[A-Z]*$"
> echo %errorlevel%
1
Run Code Online (Sandbox Code Playgroud)

也按预期工作.

我显然在这里遗漏了一些东西,即使它只是在findstr某种程度上被打破了.

为什么第一个(范围)正则表达式在这种情况下不起作用?


然而更奇怪的是:

> echo %myvar%|findstr /r "[A-Z]"
abc
> echo %myvar%|findstr /r "[A-Z][A-Z]"
abc
> echo %myvar%|findstr /r "[A-Z][A-Z][A-Z]"
> echo %myvar%|findstr /r …
Run Code Online (Sandbox Code Playgroud)

regex windows cmd batch-file findstr

15
推荐指数
2
解决办法
8861
查看次数

管道到findstr的输入

我有一个文本文件,其中包含宏名称列表(每行一个).我的最终目标是获取宏名称出现在当前目录文件中的次数.

宏的名字在C:\temp\macros.txt.

type C:\temp\macros.txt 在命令提示符下打印列表.

现在我想将输出传递给标准输入findstr.

type C:\temp\macros.txt | findstr *.ss (ss是我正在寻找宏名称的文件类型).

这似乎不起作用,我得不到结果(非常快,似乎根本没有尝试).findstr <the first row of the macro list> *.ss确实有效.

我也尝试findstr *.ss < c:\temp\macros.txt过没有成功.

pipe batch-file findstr

15
推荐指数
1
解决办法
3万
查看次数

findstr或grep自动检测字符编码(UTF-16)

我想做这个:

 findstr /s /c:some-symbol *
Run Code Online (Sandbox Code Playgroud)

或grep等价物

 grep -R some-symbol *
Run Code Online (Sandbox Code Playgroud)

但我需要该实用程序来自动检测以UTF-16(和朋友)编码的文件并适当地搜索它们.我的文件甚至还有字节排序标记FFEE,所以我甚至都没有寻找英雄的自动检测.

有什么建议?


我指的是Windows Vista和XP.

unicode windows-xp utf-16 findstr windows-vista

12
推荐指数
2
解决办法
1万
查看次数

在Windows操作系统上以递归方式搜索一个字符串

我想在Windows OS的项目中递归搜索一个字符串,例如"main".我搜索了一下,找到了一个Windows递归grep命令行的解决方案

我用两种不同的方法应用了相同的结果,结果并不像预期的那样.

比如我的做法

findstr /S "main" *.cpp
Run Code Online (Sandbox Code Playgroud)

但是当我选择的时候

findstr /S "int main" *.cpp
Run Code Online (Sandbox Code Playgroud)

我没有得到我的主要功能.这两种方法有什么区别?提供空间字符串是错误的吗?

findstr windows-7

12
推荐指数
1
解决办法
4万
查看次数

findstr ms-dos命令不会搜索子目录

我不得不在Windows 7中关闭我的Windows搜索索引,因为旧的硬盘在索引打开时不断发出噪音!

现在,我想使用Windows命令提示符在当前目录和子目录中的所有文件中搜索特定的文本术语

如何使用Windiows命令findstr搜索子目录?

目前,当我打开命令提示符并将目录更改为C:\Users\Damien\Documents\Research\2012July并运行该命令时findstr "thesis" *.tex /S,我收到以下错误:

FINDSTR: Cannot open /s
Run Code Online (Sandbox Code Playgroud)

如果我删除/ S,此命令将搜索当前目录,但我希望能够在子文件夹中搜索文本.

windows findstr

10
推荐指数
2
解决办法
3万
查看次数

findstr退出代码/ errorlevel

我有一个正在使用的程序,findstr当找到字符串时errorlevel返回0,当找不到字符串时errorlevel返回1.好吧,我可以解决这个问题.

问题出在哪里,我找不到任何关于每个errorlevel方法的官方文件findstr.我需要知道,如果别的了findstr所能返回errorlevel1,或者如果它只返回1时找不到字符串.

如果有"官方"文档的链接是首选,但任何输入都将非常感谢.

提前致谢!

cmd exit-code errorlevel findstr

9
推荐指数
1
解决办法
2万
查看次数