[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 批处理下使用findstr返回多行内容,如何只获取第一行?

如题,使用bat执行命令,返回结果用findstr处理,但是处理后有多条匹配结果,如何获取第一行内容。
例如,执行findstr /c “hello world”,返回有三行,
“hello world 1”
“hello world2”
“hello world 3”
现在只想获取第一行,如何处理

回复 2# Batcher


   

是这样的,我的代码是读取一个.txt的内容,把这个内容作为参数带入到一个命令里面,已经用了一次for循环,执行命令后会获取到一个很长的输出,然后我用findstr /c去获取含有关键参数的数据,但是返回了多行,以下是我的脚本,不太确定这个要怎么写

@echo off
title=test
for /f %%i in(testin.txt) do (
echo %%i>>result.txt
..\ipmitool.exe xxx(参数)| findstr /c:“Product Serial”>tmp.txt
set /p var=<tmp.txt && >>result.txt echo,%var%
echo.>>result.txt
)
pause

在.exe执行完后我会用findstr查找包含关键字product serial的行,但我只需要第一行,所以把他放在一个tmp文件中,取第一行出来追加到result里面,但是set /p var=<tmp.txt && >>result.txt echo,%var%这行命令拉出来单独执行是可行的,放到循环里不知道什么地方出问题了,它给result追加的是一个空行,请教一下这个要怎么改

TOP

回复 5# Batcher


   学到了,加了变量延迟之后确实能读到内容了,但是问题又回到了取单行文本内容上,tmp文件里的三行内容全部被赋值给了var,最后写入result的是findstr筛选后的所有内容&#128514;

TOP

返回列表