PowerShell のヘルプを検索する関数を作る
PowerShell の Get-Help
コマンドで読めるヘルプを検索する関数を作ってみた。
# 指定の文字列を含む Get-Help を表示する
# 「> Search-Help フォーマット演算子」というように実行する
# 検索中は進捗状況をプログレスバーで表示する
function Search-Help {
param($pattern)
$helpNames = Get-Help * | ?{$_.Category -ne "Alias"}
$STime = Get-Date
$pCounter = $remaining = 0
foreach($helpTopic in $helpNames) {
$span = New-TimeSpan $STime (Get-Date)
if($pCounter % 20 -eq 1) {
$remaining = ($span.Seconds / $pCounter) * ($helpNames.Count - $pCounter)
}
Write-Progress -Activity "Help 検索" -Status "検索中..." -PercentComplete ($pCounter++ * 100 / $helpNames.Count) -CurrentOperation ($helpTopic.Name) -SecondsRemaining $remaining
$content = Get-Help -Full $helpTopic.Name | Out-String
if($content -match $pattern) {
$helpTopic | select name, synopsis
}
}
}
この関数を定義したら、
> Search-Help フォーマット演算子
という感じで「フォーマット演算子」を含むヘルプを検索できる。
過去に作ったショボいコードを吐き捨てて終わり。