はじめに
沢山のファイルを一括処理出来ればしあわせになれる場面があります。
まずは対象ファイルの一覧を取得する方法を調べてみます。
PowerShellスクリプトを初めて実行する場合
Powershellのps1ファイルを実行する方法
Powersehllをはじめるにあたり WindowsのコマンドラインインターフェースであるPowershellはコマンドレットと言われる命令をテキストファイルに記述したスクリプトファイルを実行することが出来ます。Powershellはその...
単一フォルダのファイル一覧を取得する命令
Get-ChildItem "フォルダのパス"
ファイルの一覧が出力されます。
フォルダ下全てののファイル一覧を取得する命令
Get-ChildItem "フォルダのパス" -Recurs
フォルダ下にあるフォルダを全てのファイル一覧が出力されます。
特定のファイルを絞り込む
Get-ChildItem "フォルダのパス" -Recurs | Where-Object {$_.Attributes -ne "Directory"}
拡張子.zipのみを絞り込む
Get-ChildItem "フォルダのパス" -Recurs | Where-Object {$_.Attributes -ne "Directory"} | Where-Object {$_.Extension -eq ".zip"}
ファイル名を正規表現の条件で絞り込む
ls *.ps1 | ? { $_.Name -match "^A" }
最後に
純粋にファイルの一覧を確認するlsやdir的な使い方も出来ますが、PowerShellの場合、結果がオブジェクトで返されますのでパイプラインでつなげて複雑な条件での絞り込みも容易にできます。また、絞り込んだファイルをパイプラインでさらにつなげて削除したり、zipファイルに圧縮したりするなどの処理なども可能です。エクスプローラーでCTRLボタンを押しながら一つ一つファイルを選択するような場面をPowerShellのコマンドレットで置き換えることが出来るかもしれません。
コメント