Batch file findstr问题,返回多行以包含部分搜索字符串

Batch file findstr问题,返回多行以包含部分搜索字符串,batch-file,findstr,Batch File,Findstr,试图查找文件中的行,但文本搜索字符串有问题。搜索字符串时,返回多行,其中搜索字符串仅为行的一部分。例如,我在计算机列表中查找comp1,返回comp1和COM1A。是否有方法只返回第一个而不返回第二个,或者这是findstr的一个限制。代码如下 For /f %%a in (%home%\text.txt) do call :look1 %%a :look1 set lookup=%1 findstr /i /c:%lookup% %home%\data.csv >> %hom

试图查找文件中的行,但文本搜索字符串有问题。搜索字符串时,返回多行,其中搜索字符串仅为行的一部分。例如,我在计算机列表中查找comp1,返回comp1和COM1A。是否有方法只返回第一个而不返回第二个,或者这是findstr的一个限制。代码如下

For /f %%a in (%home%\text.txt) do call :look1 %%a

:look1
 set lookup=%1
 findstr /i /c:%lookup% %home%\data.csv >> %home%\final.csv
 exit /b
已编辑以包含data.csv示例

Data.csv

日期、公司、操作系统、应用程序

日期、组件1、操作系统、应用程序

日期、组件、操作系统、应用程序


日期、comp2、操作系统、应用程序

您可以使用regexp术语限制查找筛选器:

^
表示行的开头
$
表示行尾

 findstr /r "^comp1$" "filename.txt"
我建议另一种方法是在findstr中使用
/b
/e

FINDSTR /r "^comp, ,comp$ ,comp," <qfindrsl.txt

我可能应该把data.csv文件中的计算机名与许多其他数据排成一行,而不是第一行或最后一行。具有代表性的示例数据通常可以澄清问题。您可以编辑问题以包含此内容。在搜索词中包含前导和尾随逗号。
FINDSTR /r ",comp," <qfindrsl.txt