我正在尝试在文件中搜索字符串并显示包含字符串的文件名
我写了一个像下面这样的脚本。
Function GetFileContainsData ([string] $Folderpath,[string] $filename, [string] $Data) {
$Files=Get-ChildItem $Folderpath -include $filename -recurse | Select-String -pattern $Data | group path | select name
return,$Files
}
$configFiles= GetFileContainsData "C:\MyApplication" "web.config" "localhost"
Foreach ($file in $configFiles) { Add-Content -Path "Filelist.txt" -Value $file.Name}
此脚本将包含字符串“localhost”的所有文件名写入 Filelist.txt。
我想找到不止一个字符串。如果我传递一个数组
$stringstofind=("localhost","$env:ComputerName")
Foreach ($strings in $stringsToFind) {
$configFiles= GetFileContainsData $Installpath "web.config" $strings
Foreach ($file in $configFiles) { Add-Content -Path "Filelist.txt" -Value $file.Name}
}
它将使用文件列表查找数组中的每个字符串并更新它。如果同一个文件有两个字符串,它将在 Filelist.txt 中有该文件的 2 个条目。
是否可以在一个文件中找到多个字符串并列出文件名?[这样可以消除文件名的多余条目]