Batch file findstr问题,返回多行以包含部分搜索字符串
试图查找文件中的行,但文本搜索字符串有问题。搜索字符串时,返回多行,其中搜索字符串仅为行的一部分。例如,我在计算机列表中查找comp1,返回comp1和COM1A。是否有方法只返回第一个而不返回第二个,或者这是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
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