我将在一个更大的脚本中重新搜索已定义文件中的字符串。
function ConfigSearch([String] $path, [String] $pattern){
[string]$path
[string]$pattern
Get-ChildItem -path $path | Select-String -pattern $pattern
}
ConfigSearch c:\smhost SMHOST
这是一个例子。输出将是
PS C:\Backup> C:\test\filesearch.ps1
c:\smhost
SMHOST
C:\smhost\smhost.conf:1:SMHOST = "D:\ca\webagent cr010\win64\config\smhost.conf"
我除了C:\smhost\smhost.conf:1:SMHOST = "D:\ca\webagent cr010\win64\config\smhost.conf"
之外别无其他。或者更喜欢"D:\ca\webagent cr010\win64\config\smhost.conf"
,我正在寻找的内容。
你的意思是像这样添加它们:
function ConfigSearch([String] $path, [String] $pattern){
[string]$path
[string]$pattern
$Matches = Get-ChildItem -path $path | Select-String -pattern $pattern
$Matches | Select-Object -ExpandProperty Line
}
ConfigSearch c:\smhost SMHOST
一个问题解决了,但现在输出
c:\smhost
SMHOST
SMHOST = "D:\ca\webagent cr010\win64\config\smhost.conf"
我不想要
c:\smhost
SMHOST
输出。
答案 0 :(得分:3)
Select-String
返回一个选择信息对象,如果您愿意,可以只选择匹配的行:
$Match = Get-ChildItem -path $path | Select-String -pattern $pattern
$Match | Select-Object -ExpandProperty Line