2010年01月14日

powershellで出来るとわかったこと、そしてその応用 

※応用とまでは言えないのですが…インプットに対するアウトプットは大事だよ、ということで。

■カレントフォルダでのスクリプト実行はPS > ./hogehoge.ps1 の形式
 基本的に絶対パスにすることにする。

■Aliasはsetしちゃえ。
例えばgrepとか。
Set-Alias grep Select-String

■エイリアスからcmdlet名を調べる
Get-alias 調べたいalias名

でも、とりあえず思ったのは「逆に、このcmdletのaliasは?」と思う機会が多い。ということで

■cmdlet名からaliasを調べる
Get-Alias | Where { $_.Definition -eq "コマンドレット" }
長いし覚えらんない。

ということで、Get-AliasNameという新しいAliasを作ることにした。

でもとりあえず、ユーザーからの入力方法も勉強しようということで、

■ユーザーに情報入力をプロンプト(ルー語みたいですがw)
$Name = Read-Host "Please enter your name"
↑をそのまま使うことにした。

んで、↑↑とくっつけて、スクリプトを作った。
$Name = Read-Host "Please enter cmdlet name that you want to know the alias."
get-alias | where-object {$_.Definition -match "$Name"}


これを、get-aliasname.ps1 とか適当に保存。

■↑のps1ファイルを実行するaliasを作る。
Set-Alias Get-AliasName C:\work\programs\powershell\get-aliasname.ps1


これで万事オッケーかと思いきや、PowerShellを閉じると「なかったことになる」そうで・・・

■関数をプロファイルに登録する
 $Profileに登録すれば、起動時に読み込んでくれるらしいので、、、

 grepと併せて、
Set-Alias grep Select-String
Set-Alias Get-AliasName C:\work\programs\powershell\get-aliasname.ps1

 を$profile先のファイルに保存。

 ※Set-ExecutionPolicy は昔やっていたので省略。

これで完成しました〜。

実行例はコチラ
PS C:\> get-aliasname
Please enter cmdlet name that you want to know the alias.: get-member

CommandType Name Definition
----------- ---- ----------
Alias gm Get-Member



以下参考URL
http://codezine.jp/article/detail/2623?p=2
http://www.atmarkit.co.jp/fwin2k/operation/psh02/psh02_01.html
http://powershell.hiros-dot.net/?tag=/%E3%82%A8%E3%82%A4%E3%83%AA%E3%82%A2%E3%82%B9
http://blog.hiros-dot.net/PowerShell%E3%81%AB%E3%81%8A%E3%81%91%E3%82%8B%E3%83%97%E3%83%AD%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E4%BD%9C%E6%88%90PowerShellTips.aspx
http://www.microsoft.com/japan/technet/scriptcenter/topics/msh/cmdlets/read-host.mspx
http://blog.hiros-dot.net/PowerShell%E3%81%AB%E3%81%8A%E3%81%91%E3%82%8B%E3%83%97%E3%83%AD%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E4%BD%9C%E6%88%90PowerShellTips.aspx
posted by kbiz at 18:09| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。
この記事へのトラックバックURL
http://blog.seesaa.jp/tb/138300126
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック