这是我的搜索:
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;
尝试使用?
同样的结果。
答案 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%