(1) Powershellで親フォルダのパスを取得する方法
(1-1) 構文と使用例
(1-2) ご参考:Split-Pathのオプション
(2) Powershellでフォルダ配下のファイル一覧を取得する方法
(1) Powershellで親フォルダのパスを取得する方法
Powershellで用意されているSplit-Pathコマンドレットを使って親フォルダを取得する方法をご紹介します。
(1-1) 構文と使用例
(構文)
Split-Path -Path [ファイルパス]
Split-Pathコマンドレットに対して「-Path」オプションで指定したフォルダorファイルの「1つ親の階層」を取得します。
(例)
この例では「C:\Temp1\Temp2\Temp3」の親階層である「C:\Temp1\Temp2」を取得します。
#(例) Split-Path -Path "C:\Temp1\Temp2\Temp3" #(結果) C:\Temp1\Temp2
(図121)
(1-2) ご参考:Split-Pathのオプション
ご参考までに、今回使用したSplit-Pathコマンドレットは「ファイルパスを加工」するためのオプションにがいくつかあるのでご紹介します。
(表)Split-Pathのオプション
オプション | 説明 | 例 |
-Path | コマンド実行する対象パスを指定し、1つ親の階層を取得します。 (右記の例では最後の「\」の前の部分を取得) |
#(例) Split-Path -Path “C:\Temp1\Temp2\Temp3” #(結果) C:\Temp1\Temp2 |
-Qualifier | パスの修飾子を返却します。 (コロンより前のドライブ名の部分) |
#(例) Split-Path -Path “C:\Temp1\Temp2\Temp3” #(結果) C: |
-Leaf | パスの修飾子を返却します。 (末尾の節) |
#(例) Split-Path -Path “C:\Temp1\Temp2\Temp3” -Leaf #(結果) Temp3 |
-Resolve | ファイル名を除いたパスを返却します。 | #(例) Split-Path -Path “C:\Temp1\Temp2\Temp3\*” -Resolve #(結果) C:\Temp1\Temp2\Temp3 C:\Temp1\Temp2\Temp3 C:\Temp1\Temp2\Temp3 |
-Leaf -Resolve | 指定フォルダ内にあるファイル名の一覧を返却します。 | #(例) Split-Path -Path “C:\Temp1\Temp2\Temp3\*” -Resolve -Leaf #(結果) aaa.txt bbb.txt ccc.txt |
-IsAbsolute | 絶対パスか相対パスか?をboolean型で返却します(相対パスの場合=False、絶対パスの場合=True) | #(例) Split-Path -Path “.\Temp1\Temp2\Temp3\*” -IsAbsolute #(結果) False #(例) |
(図131)「-Qualifier」の例
ドライブ名の部分のみを取得しています。
(図132)「-Leaf」の例
パスの末尾の節(下記例ではファイル名)を取得しています。
(図133)「-Resolve」の例
パスからファイル名を除いて表示しています。
(図134)「-Resolve -Leaf」の例
ResovleとLeafを組み合わせると、Leafが効いてファイル名の部分のみを取得できます。
(図135)「-IsAbsolute」の例
(2) Powershellでフォルダ配下のファイル一覧を取得する方法
上記で紹介しているSplit-Pathのオプション「-Resoleve -Leaf」を利用する事で、指定フォルダ配下にあるファイルの一覧を取得できます。
#(例) Split-Path -Path "C:\Temp1\Temp2\Temp3\*" -Resolve -Leaf #(結果) aaa.txt bbb.txt ccc.txt
(図134)