PowerShellでディレクトリに特定の拡張子のファイルが存在するか確認する。

powershell コンピュータ
powershell

具体的に画像ファイルが保存されたディレクトリか確認したい。
画像ファイルの拡張子は複数対応させたいのでGet-ChildItemFilteオプションでは都合が悪い。

(Get-ChildItem -Path "確認するディレクトリのパス" -File  | Where-Object { $_.Extension.ToUpper() -In (".PNG", ".JPG", ".JPEG", ".BMP") }).Length -gt 0

まずGet-ChildItemFileオプションでファイルを絞り込みWhere-Objectで拡張子を絞りこむ。拡張子はExtensionプロパティで取得できますが、大文字小文字が混在すると条件式が面倒になるので、ToUpper()メソッドで全て大文字にしています。次にInで配列に含まれる拡張子のみを絞り込む。そして、絞り込まれた要素数をLengthが0より大きいか比較している。

他の拡張子も条件に含める場合Inで配列の要素を増やすことで対応できる。

もっと複雑な条件を書きたい場合はInの代わりに正規表現を用いる方法を検討したい。

コメント