batch-file - 如何处理文本文件的每一行并对每一行做一些事情
问题描述
如何使用批处理文件处理文本文件的每一行,并检查当前行中包含的字符串,如果为真则执行其他操作并继续下一行直到 eol。我有一个包含如下行的文本文件:
\\.\DISPLAY2|ASPEED Graphics Family(WDDM)
\\.\DISPLAY7|NVIDIA Tesla M10
\\.\DISPLAY11|NVIDIA Tesla M10
\\.\DISPLAY15|NVIDIA Tesla M10
\\.\DISPLAY3|NVIDIA Tesla M10
\\.\DISPLAY10|ASPEED11 Graphics Family(WDDM)
如果该行包含单词“NVIDIA”,我需要获取单词“DISPLAY”旁边的数字所以在这个例子中,我应该得到数字 7、11、15 和 3
解决方案
目前尚不完全清楚您是否只想处理包含NVIDIA
.
如果你这样做了,那么根据你提供的信息,你可以试试这个:
@Echo Off
For /F "Tokens=2 Delims=Yy|" %%A In (
'FindStr /I "DISPLAY[0-9]*|NVIDIA" "File.txt" 2^>Nul') Do Echo %%A
Pause
如果您想处理所有字符串内容,但只提供了有关您希望对包含 的行做什么的信息NVIDIA
,这可能会有所帮助:
@Echo Off
For /F UseBackDelims^=^ EOL^= %%A In ("File.txt"
) Do Set /P "=%%A"<Nul|FindStr /I "DISPLAY[0-9]*|NVIDIA">Nul 2>&1 &&(
For /F "Tokens=2 Delims=Yy|" %%B In ("%%A") Do Echo %%B
)||Echo Do something else
Pause
以上示例使用的是文本文件名File.txt
,请根据需要进行调整。
推荐阅读
- python - 条件下如何在Python中创建不同的csv文件
- r - 使用每个变量的最大值创建 ggplot2 图的 R 函数是什么?
- qt - QStringList 将数据存储在堆栈上还是堆上?
- mysql - mysql查询特定用户的发送和接收消息
- python - Python“ModuleNotFoundError:没有名为‘numbers’的模块”
- python - 对对象列表进行排序并按属性(适应度)值重新索引
- javascript - JavaScript 块循环逻辑
- android - Google Place Picker 需要点击三下才能打开
- firebase - Firebase Nuxt 模块仅在特定页面上?
- blazor-webassembly - 使用 ABP Framework 3.2 根据页面加载动态将组件添加到默认工具栏