如何使用batchscript过滤特定句子中的特定单词?

时间:2018-03-19 13:44:24

标签: batch-file

C:\a\controller2.log.2018-02-28:2018-02-28 20:20:59,092 # [XLProcessContextImpl.126591.end_of_day_revaluation] # INFO # C=UpdateDBStatisticProcessListener Update Statistics Query::DEC 

这是我从文件中过滤掉的行。我正在尝试从上面的行中过滤日期和时间 我正在使用:

for /F "usebackq tokens=2,* delims=: " %%a in ("abc.txt") 

删除日期和下一个之前的内容我不明白如何过滤日期和时间并显示它

如果有人给我任何想法来过滤日期和时间会很有帮助

1 个答案:

答案 0 :(得分:0)

你很亲密。由于该行的语法复杂,最好使用两个for /f循环(一个用于去除标题,另一个用逗号分割):

for /F "usebackq tokens=2,* delims=:" %%a in ("abc.txt") do (
  for /F "delims=," %%m in ("%%b") do set DateTime=%%m
)
echo %DateTime%

for /F "usebackq tokens=2,* delims=:" %%a in ("abc.txt") do (
  for /F "tokens=1,2" %%m in ("%%b") do set "DateTime=%%m %%n"
)
echo %DateTime%

(取决于你需要的时间)