Se você está bem com o uso do PowerShell, esse script deve fazer o trabalho:
Get-ChildItem *.php -Recurse | ForEach-Object {
$lines = Get-Content $_ -TotalCount 2
If ($lines.Length -GT 1 -And $lines[1].Length -GT 1 -And $lines[1].Contains('Oracle Status:')) {
New-Object -TypeName PSObject -Prop @{'FilePath' = $_.FullName; 'StatusLine' = $lines[1]}
}
}
Produz saída semelhante a esta no console:
A versão mostrada aqui procurou por .txt
arquivos com uma linha Status:
, mas o que foi colado acima faz o que você quer.
Salve o script como um arquivo .ps1
, por exemplo %código%. Se você nunca executou um script do PowerShell antes, será necessário executar esse comando uma vez para permitir a execução de scripts:
Set-ExecutionPolicy Unrestricted -Scope CurrentUser
Depois disso, você pode invocar o script em um prompt do PowerShell digitando phpstatus.ps1
seguido de seu nome, por exemplo, %código%. (A conclusão da tabulação funciona.) Como a saída é uma coleção de objetos do PowerShell, você pode usar comandos de gerenciamento de dados padrão do PowerShell neles.