kkamegawa's weblog

Visual Studio,TFS,ALM,VSTS,DevOps関係のことについていろいろと書いていきます。Google Analyticsで解析を行っています

入れ子になるクラス

[System.Environment]::GetFolderPath()を使おうと、列挙体をこんな感じで指定しようとしても、どうしてもうまくいかない。

[System.Environment.SpecialFolder]::MyMusic

「System.Environment+SpecialFolderではありません」などというエラーが出てくる。+ってなんじゃらほいと思ったら、入れ子になっているクラスを+で連結しているためにこうなっているんだそうだ。ちょっと調べたらPowerShell Team Blogとよこけんさんのところで解説されていた。
C#と諸々 PowerShellで入れ子型にアクセス
Explore Your [Environment] - Windows PowerShell Blog - Site Home - MSDN Blogs
PowerShellおもしろいのだけれど、こういうところで実装がどうなっているのか知らないとはまるところもありますね。ビルドしたモジュールをデプロイするために、「ロード済みか(ロード済みなら読み込みプロセスをチェックする)」、「読み込まれていなければ、直下にフォルダを作ってバックアップしてコピー」なんていうスクリプトを80行くらいで作ってみた。作り始めると、勉強になるのはいいのだけれど、時間が(^^;。スクリプトブロックとか使ってみて腑に落ちる。ちなみに参考にしているのはPowerShell インアクション。

今ならばクックブックあたりもいいと思いますよ。実例ベースなので、載っているコードをコピペして改造すればいけるんじゃないでしょうか。
Windows PowerShellクックブック

Windows PowerShellクックブック