PowerShell を使用してパスからファイル名を抽出する
-
PowerShell で
Split-Path
コマンドレットを使用してパスからファイル名を抽出する -
PowerShell で
GetFileName
メソッドを使用してパスからファイル名を抽出する -
PowerShell で
Get-Item
コマンドレットを使用してパスからファイル名を抽出する
ファイルパスは、システム上のファイルの場所を示します。PowerShell でファイルを操作しているときに、パスからファイル名のみを取得する必要がある場合があります。
PowerShell でファイルのパスを取得する方法は複数あります。このチュートリアルでは、PowerShell を使用してファイルパスからファイル名を抽出する方法を説明します。
PowerShell で Split-Path
コマンドレットを使用してパスからファイル名を抽出する
Split-Path
コマンドレットは、PowerShell で指定されたパスの指定された部分を表示します。パスの一部は、親フォルダー、サブフォルダー、ファイル名、またはファイル拡張子のみにすることができます。
拡張子が付いたファイル名を抽出するには、-Leaf
パラメータを指定して Split-Path
コマンドを使用します。
Split-Path C:\pc\test_folder\hello.txt -Leaf
出力:
hello.txt
拡張子のないファイル名を取得するには、-LeafBase
パラメーターを使用できます。このパラメーターは、PowerShell6.0 以降のバージョンでのみ使用できます。
Split-Path C:\pc\test_folder\hello.txt -LeafBase
出力:
hello
PowerShell で GetFileName
メソッドを使用してパスからファイル名を抽出する
.NET の Path クラスの GetFileName
メソッドは、指定されたパスのファイル名と拡張子を返します。
次の例は、パス C:\pc\test_folder\hello.txt
からのファイル名と拡張子を表示します。
[System.IO.Path]::GetFileName('C:\pc\test_folder\hello.txt')
出力:
hello.txt
GetFileNameWithoutExtension
メソッドを使用して、拡張子のないファイル名のみを抽出できます。
[System.IO.Path]::GetFileNameWithoutExtension('C:\pc\test_folder\hello.txt')
出力:
hello
PowerShell で Get-Item
コマンドレットを使用してパスからファイル名を抽出する
Get-Item
コマンドレットは、指定された場所にあるアイテムを抽出します。アイテムが指定されたパスに存在する場合、ファイルの Directory
、Mode
、LastWriteTime
、Length
、そして Name
が返されます。
Get-Item C:\pc\test_folder\hello.txt
出力:
Directory: C:\pc\test_folder
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 09-06-2022 21:43 18 hello.txt
上記のコマンドの最後に .Name
を追加して、拡張子が付いたファイル名のみを返すことができます。
(Get-Item C:\pc\test_folder\hello.txt).Name
出力:
hello.txt
拡張子のないファイル名のみを取得するには、.BaseName
プロパティを指定します。
(Get-Item C:\pc\test_folder\hello.txt).BaseName
出力:
hello
このメソッドは、Get-ChildItem
コマンドレットにも適用されます。
(Get-ChildItem C:\pc\test_folder\hello.txt).Name
(Get-ChildItem C:\pc\test_folder\hello.txt).BaseName
出力:
hello.txt
hello