我有一个 CMD bat 文件,它要求用户粘贴已运行的其他程序的日志文件路径。
一旦他们这样做,我的脚本就会扫描粘贴路径中的日志,查找某些文本、警告、错误等
因此,我有下面的代码,它可以扫描目录中的所有文件以查找模式 WARNING:,并输出一个名为 的文件psout.txt
,该文件显示了有问题的行文本和它发生的位置的数字。
powershell "Get-Content *.* | Select-String -Pattern WARNING: | Select-Object LineNumber, Line | out-file -filepath psout.txt"
但是,由于可能有多个日志,有没有办法修改此行代码以在行号旁边显示文件名,我尝试过basename
其他变体,但就是无法成功。
我已经看到filename
应该可以完成这项工作,但虽然它返回一个值,但它始终是“输入流”的值
有任何想法吗 ?
答案1
因此似乎只需要进行一点调整:
powershell "Get-Childitem -recurse | Select-String -Pattern WARNING: | Select-Object filename,LineNumber, Line | out-file -filepath '[MyPath]\psout.txt'"