2011年4月21日木曜日

◆フォルダーに特定の種類のファイルが含まれるか調べる(Test-Path)

色々なやり方が考えられ、どれをとっても大した処理ではないのであまり気にする必要は無いのかとも思うのだが、一応考えてみた。

素直に考えるとこんな感じ?
(dir | ?{$_.extension -eq ".ps1"}).count -gt  0

試してみると一見良さそうに見えるが、よくある間違いのパターンでps1ファイルが一つしか無いとうまくいかない。
一つでもうまくいくように先頭に@を付けておく。

こんなのでも良いか。
@(dir .\* -inc *.ps1).count -gt 0

これはいまいちか。
@((dir) -match ".*\.ps1").count -gt 0
ん~、これじゃ途中にps1が有っても引っかかるか?
こうかな?
@((dir) -match '\.ps1$').count -gt 0
(相変わらず私の正規表現は怪しい)

他にも色々とあるのかもしれないが、一応以下のTest-Pathを使うのが簡単そう。

PS>Test-Path .\*.ps1
True

0 件のコメント:

コメントを投稿