Articles of findstr

Findstr输出格式

我有很多日志文件,我想从中提取特定的文本,并用FINDSTR命令将其复制到一个新的文件, 例如:我有日志文件称为1.log,我需要提取在日志文件中的所有以N66666行开始的数字,如下所示: 22220473400664->473400664 01210260222->01210260222->N8888801210260222 01278448231->01278448231->N6666601278448231 01286799109->01286799109->N8888801286799109 我试过了: findstr /s /i "\<N66666.*" *.* > results.txt 但结果是复制从N6666开始的所有行到results.txt,我只需要将这些数字复制到results.txt。

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

在cmd.exe中编写一些最新的脚本时,我需要使用findstr和正则expression式 – 客户需要标准的cmd.exe命令(不包括GnuWin32,Cygwin,VBS和Powershell)。 我只是想知道一个variables是否包含任何大写字母,并试图使用: > set myvar=abc > echo %myvar%|findstr /r "[AZ]" abc > echo %errorlevel% 0 当%myvar%设置为abc时,实际输出string并将errorlevel设置为0,表示find了匹配项。 但是,全名列表: > echo %myvar%|findstr /r "[ABCDEFGHIJKLMNOPQRSTUVWXYZ]" > echo %errorlevel% 1 不输出该行,并正确地将errorlevel设置为1。 此外: > echo %myvar%|findstr /r "^[AZ]*$" > echo %errorlevel% 1 也按预期工作。 我明显在这里丢失了一些东西 ,即使这只是findstr被破坏的事实。 为什么第一个(范围)正则expression式在这种情况下不起作用? 更奇怪的是: > echo %myvar%|findstr /r "[AZ]" abc > echo %myvar%|findstr /r "[AZ][AZ]" […]

Findstr总是无法在文本文件中find哈希string

我想要replace某个.jar文件,如果该文件的MD5哈希值更改。 我已经编写了一个小的PowerShell脚本来完成文件的散列操作,并且.ps1脚本通过batch file运行。 PowerShell打印哈希到1.txt我希望批处理脚本检查文本文件的正确散列,如果哈希是不同的,它会覆盖旧版本的文件。 文件的replace还没有实现,但一旦findstr问题解决了。 @echo off setlocal EnableDelayedExpansion :a powershell.exe -ExecutionPolicy ByPass -file powershellmd5.ps1 findstr /c:"ff b1 b9 2d b1 03 db 59 3f 9e ca 51 f0 14 67 62 ca a8 d7 7d" "1.txt" echo !errorlevel! timeout /t 10 /NOBREAK goto a 哈希完成时,以下是1.txt的内容: 文件license.jar的SHA1哈希值: ff b1 b9 2d b1 03 db 59 […]

在findstr中的正则expression式

我正在用findstr和/r标志进行一些stringvalidation,以允许使用正则expression式。 特别是我想validation整数。 正则expression式 ^[0-9][0-9]*$ 为非负数工作良好,但由于我现在支持负数,以及我试过 ^([1-9][0-9]*|0|-[1-9][0-9]*)$ 对于正整数或负整数或零。 正则expression式在理论上运行良好。 我在PowerShell中testing它,它匹配我想要的。 但是,与 findstr /r /c:"^([1-9][0-9]*|0|-[1-9][0-9]*)$" 它没有。 虽然我知道findstr没有最先进的正则expression式支持(甚至在Notepad ++下面,这可能是一个相当大的成就),但我期望这样简单的expression式能够工作。 任何想法我在这里做错了吗?

如何使用新行正则expression式使用findstr

我在Windows DOS提示符。 我有日志文件,其中包含日志如下: Timestamp: Order received for Item No. 26551 Timestamp: Exception: OutOfRangeException Timestamp: Message: Inventory Item is not stock. Item No. 23423 Timestamp: Order received for Item No. 23341 我想提取所有产生某种例外的项目号码。 我正在使用findstr命令。 我怎样才能在我的正则expression式中使用换行符? 我想所有的行有exception字,从下一行的项目号。 任何帮助?

如何通过使用“findstr”来匹配IP地址? 或者在Windows中批处理的任何其他方法

正如标题所说,我想在Windows中批量匹配ip地址,请告诉我如何才能做到这一点? 我看到“ findstr ”可以匹配正则expression式,如“ [0-9] ”,但“findstr”如何匹配它出现一到三次 ?

如何将输出redirect到Gvim作为要打开的文件列表?

我想要findstr /m background *.vim | gvim findstr /m background *.vim | gvim在gvim的单个实例中打开所有包含background *.vim文件 – 但是我无法使pipe道工作。 这与这个问题非常相似,但不是捕获stdin输出,而是希望GViM将输出视为要打开的文件列表 – 而在Windows系统上,xargs不能保证。 有任何想法吗?

批处理脚本根据findstr正则expression式删除文件

我试图删除一些基于正则expression式批处理脚本的文件。 我拥有的是: FOR /f "tokens=*" %%a in ('dir /b | findstr MY_REGEX_HERE') DO ECHO %%a 我知道我的内部命令自己工作,给我的目录列表,但是当我embedded到这样的for循环,我得到一个错误| was unexpected at this time. | was unexpected at this time. FOR循环命令中不允许pipe道系统吗? 或者我需要逃避它或什么? 任何帮助我如何做到这一点将是非常好的。

findstr ms-dos命令不会search子目录

我必须在Windows 7中closures我的Windowssearch索引,因为旧的硬盘不断地打开索引打开噪音! 现在我想使用Windows命令提示符在当前目录和子目录内的所有文件中search特定的文本字词 如何使用Windiows命令findstr来search子目录? 目前,当我打开命令提示符并将目录切换到C:\Users\Damien\Documents\Research\2012July并运行findstr "thesis" *.tex /S ,出现以下错误: FINDSTR: Cannot open /s 这个命令将search当前目录,如果我删除/ S,但我希望能够search子文件夹内的文本也。