如何使用PowerShell列出含指定字符串的文件路径、文件名及对应行内容
PowerShell 递归匹配字符串并输出文件路径与匹配行解决方法
你原有命令的问题在于重复遍历文件对象,且没有捕获Select-String返回的匹配行属性,只筛选了符合条件的文件列表。Select-String本身会返回包含文件路径、匹配行内容等信息的结构化对象,直接处理该对象即可实现需求。
纯文本输出命令(输出到Output.txt)
Get-ChildItem -File -Recurse | Select-String -Pattern "dummy" | ForEach-Object { $_.Path "`"$($_.Line)`"" } | Set-Content Output.txt
参数说明
Get-ChildItem添加-File参数仅检索文件,过滤目录减少无效扫描Select-String返回的匹配对象中,Path属性为文件完整路径,Line属性为匹配到的整行内容- 输出格式与需求示例对齐,路径单独占一行,带引号的匹配行内容占下一行
HTML格式输出命令(输出到Output.html,匹配带strong、p标签的示例效果)
Get-ChildItem -File -Recurse | Select-String -Pattern "dummy" | ForEach-Object { "<strong>$($_.Path)</strong>" "<p>`"$($_.Line)`"</p>" } | Set-Content Output.html
内容的提问来源于stack exchange,提问作者user68288
相关产品推荐
相关产品推荐

