6-2.処理 3.エピソードファイルループ処理 ループに入るまで

とりま、「3.エピソードファイルループ処理」に該当する冒頭の処理とループ処理だけ先に解説をば。


 # バックアップファイルフォルダ内のエピソードファイルを取得する(ファイル名順)

 $itemList = Get-ChildItem ($inptFldr + "\" + "episode*") | Sort-Object { $_.Name }


前に出てきたパイプ(|)をここでも使ってます。

「Get-ChildItemした結果をSort-Objectして変数itemListに入れる」という形ですね。

まずはGet-ChildItemから。


Get-ChildItem ($inptFldr + "\" + "episode*")


()でくくられているのは文字連結を使って「変数inptFldr(バックアップ解凍フォルダパス)\episode*」という文字列を作ってます。

この場合の「*」はワイルドカードと呼ばれる便利文字。「変数inptFldr(バックアップ解凍フォルダパス)\episode*」とすることで、「変数inptFldr(バックアップ解凍フォルダパス)内にある頭にepisodeが付くファイル」を指します。

で、Get-ChildItemは引き渡された文字列が指すパス内のファイルオブジェクト(ワイルドカード使ってれば、そのワイルドカードでしぼり込みした範囲)を配列として取得します。

なので、ここではエピソードファイルのファイルオブジェクトをまとめて取得します。


Sort-Object { $_.Name }


Sort-Objectはオブジェクトの配列をそのオブジェクトの中の項目で並び替えて返すもので、単独で使うと「Sort-Object -InputObject 並び替える配列 -Property 並び替え基準の項目(カンマ区切りで項目名)」という形で使いますが、今回はパイプ(|)で引き渡しているので、


Sort-Object { $_.パイプで渡すオブジェクト配列を並び替える項目}


という形で使えます。

今回はNameという項目で並び替えをしてるわけです。ファイルオブジェクトのNameはファイル名のことです。

エピソードファイルにはファイル名に「0埋め4桁の連番」がついているので、この並び替えできれいにエピソード順になるわけです。

それが「変数itemList」に入るようになります。


そして、メインとなるループ処理!


#取得したファイルリスト($itemList)をループで1件ずつ処理

foreach($item in $itemList){

 繰り返し処理(省略)

}


今回はエピソードファイルのオブジェクトファイルを順番にぶん回して(ループを使う時によく私が使う表現)処理すればいいので、foreachを使います。


foreachは


foreach(任意の変数 in 配列またはオブジェクト){

 繰り返し配列、またはオブジェクトを利用して行う処理

}


という形で使います。自動的に配列の部屋を渡してくれて、それを元に処理できます。便利。

この時、その渡してくれる配列の部屋をinの手前の「任意の変数」に入れてくれるので、foreachのネストの範囲ではこの「任意の変数」を使えます。

今回は「$item」という変数がその任意の変数なので、繰り返し処理についてはこの「$item」という変数をめっちゃ使います。

  • Xで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る