我可以在包含*的文件名上使用findstr而不在输出中获取文件名和路径吗?

时间:2014-03-28 17:54:24

标签: batch-file findstr

这是我的搜索:

if exist log\logfile.txt.bak* findstr /I /C:"FAN_FAULT" log\logfile.txt.bak* >>%outputname%

我的结果:

log\logfile.txt.bak4:2014/03/20 15:11:19.894; Info   ;Sending Alert FAN_FAULT_SYS_FANSPEED -  - Fan speed fault; 

我的期望(如果没有通配符,则获取):

Info   ;Sending Alert FAN_FAULT_SYS_FANSPEED -  - Fan speed fault;

尝试使用?同样的结果。

3 个答案:

答案 0 :(得分:1)

if exist log\logfile.txt.bak* (
   for /F "tokens=1* delims=;" %%a in ('findstr /I /C:"FAN_FAULT" log\logfile.txt.bak*') do echo %%b >>%outputname%
)

答案 1 :(得分:0)

如果您使用带有通配符的findstr,它会在找到的行前面显示文件名:

log\logfile.txt.bak4: 2014/03/20 15:11:19.894;信息;发送警报FAN_FAULT_SYS_FANSPEED

这是有道理的,因为可能有几个文件。

对于我不确定的日期/时间字符串,我的findstr不会这样做。

答案 2 :(得分:0)

for %%a in (log\logfile.txt.bak*) do findstr /I /C:"FAN_FAULT" "%%a" >>%outputname%