$profileに書いた関数を一覧表示する方法。
>getFunc
で以下のように表示される
CommandName Help Source
----------- ---- ------
fclone カレントディレクトリが同じconemuのタブを開く fclone{ $d = $pwd ConEmu.exe /Single -cmd "p...
profile-reload プロファイルスクリプトを再読込する profile-reload{ . $PROFILE }
getFuncの定義は以下の通り。自分はprofile.ps1ファイルをdropboxに入れている つまりps1ファイルのフルパスにdropが入っている関数だけに制限をしている
source項目はおおまかにどんな処理か見れる。大まかなので、改行とかスペース、タブを減らす。ヘルプ用の構文を取り除く、先頭のfunctionの文字を取り除く。
function getFunc{
$a = gci function: | ? ScriptBlock.File -like "" ;
$list=New-Object -TypeName System.Collections.ArrayList
for($i = 0;$i -lt $a.count ; $i++){
if( $a[$i].ScriptBlock.File -match "drop" ){ # ここは任意の値に変更
$source=$a[$i].ScriptBlock.Ast -replace "\n",""
$source=$source -replace "<#[\S\s]+#>"," "
$source=$source -replace "\s+"," "
$source=$source -replace "^function "," "
$helpObject = $h = Get-Help $a[$i].Name
$list += [PSCustomObject]@{
CommandName = $a[$i].Name
Help = $helpObject.description.Text
Source = $source
}
}
}
$list | Format-Table -AutoSize
}
helpの値はこうやって定義する。日本語OK。もちろんファイルはutf16
function profile-reload{
<#
.DESCRIPTION
プロファイルスクリプトを再読込する
#>
. $PROFILE
}
こんな感じで。
profile-reloadをしても変わらない、というか一度定義された関数は再度. $profileしても更新されないっぽい
次はこれをなんとかしたいかな