My profile.ps1(1)

海外だと自分のprofile.ps1を紹介している人がちらほらいますが、国内だと見かけないですね。
試しに少しだけ公開してみます。
要望があれば続きます。

A〜ZドライブへCDするエイリアスを作成する

デフォルトのprofile.ps1についているコードです。

変更前
& {
    for ($i = 0; $i -lt 26; $i++) 
    { 
        $funcname = ([System.Char]($i+65)) + ':'
        $str = "function global:$funcname { set-location $funcname } " 
        invoke-Expression $str 
    }
}
変更後
& {
    for ($i = 0; $i -lt 26; $i++) 
    { 
        $funcname = ([System.Char]($i+65)) + ':'
        $str = "function global:$funcname { set-location $funcname\ } " 
        invoke-Expression $str 
    }
}

何が変わったでしょう?(^^;

変更前のコードだと・・・

例えば、C: というエイリアスは set-location C: に対応するのだけれど、
これだと、カレントが「C:\WINDOWS」の時に「C:」と打ってもカレントが変更されない。

Cドライブに移動しなさい

というコマンドなので、元からCドライブだし・・・とPowerShellがごねる訳です。orz

変更後のコードだと・・・

C: というエイリアスが set-location C:\ に対応するので、

C:\に移動しなさい。

というコマンドなのでカレントが「C:\WINDOWS」だとしても、
PowerShellは大人しく「C:\」に移動してくれます。

ぷちトリビア

オブジェクトの型名(フルパス)を取得する

私の最も利用頻度の高い関数です。

#############################################################
# 関数名        Get-Type
# 概要          オブジェクトの型名(フルパス)を取得する
# 内容          
#               
# エイリアス    gt
#############################################################
function Get-Type([Object]$obj)
{
    if($obj -ne $null)
    {
        $obj.gettype().fullname
    }
}
Set-Alias gt Get-Type

使い方

「ps」の戻り値の型って何だっけ?

こんな時は「gt」。

PS C:\> gt (ps)[0]
System.Diagnostics.Process
「$host」って何型?

そんな時も「gt」。

PS C:\> gt $Host
System.Management.Automation.Internal.Host.InternalHost
PS C:\>

知らないオブジェクトを見つけたら、まず「gt」。そして、ググる。それからMSDNを見る。
習慣になってます。(^^;