PowerShell のファイル名からパスと拡張子を削除する
PowerShell は、システム内のさまざまなファイル操作の処理をサポートしています。PowerShell でファイルの作成、コピー、移動、名前変更、編集、削除、表示などのタスクを実行できます。
PowerShell には、ファイルの名前フルパスと拡張子を取得するために使用できるさまざまなコマンドレットがあります。システム内のファイルを操作しているときに、パスと拡張子を付けずにファイル名を取得する必要がある場合があります。
このチュートリアルでは、PowerShell のファイル名からパスと拡張子を削除する方法を説明します。
BaseName
プロパティを使用して、PowerShell のファイル名からパスと拡張子を削除する
コマンドレット Get-Item
は、指定された場所でアイテムを取得します。指定したファイルの Directory
、Mode
、LastWriteTime
、Length
、および Name
が表示されます。
指示:
Get-Item test.txt
出力:
Directory: C:\Users\rhntm
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 3/12/2022 7:36 PM 70 test.txt
Get-Item
で BaseName
プロパティを使用して、Get-Item
でファイル名のみを取得できます。
(Get-Item test.txt).BaseName
出力:
test
複数のファイルのパスと拡張子を削除する場合は、Get-ChildItem
コマンドレットを使用できます。次のコマンドは、PowerShell でパスと拡張子なしで複数のファイル名を取得する方法を示しています。
指示:
(Get-ChildItem "C:\Users\rhntm\*.txt").BaseName
出力:
hello
new
record
test
上記のコマンドは、ディレクトリ C:\Users\rhtnm
にあるすべての .txt
ファイル名を取得します。
.NET
クラスを使用して、PowerShell のファイル名からパスと拡張子を削除する
次のメソッドは、.NET
フレームワーククラスを使用して、ファイル名からパスと拡張子を削除します。System.IO.Path
.NET クラスには、PowerShell で拡張子なしでファイル名を取得する GetFileNameWithoutExtension()
メソッドがあります。
C:\Users\rhntm\test.txt
にあるファイル名を取得する場合は、以下のコマンドを実行できます。
指示:
[System.IO.Path]::GetFileNameWithoutExtension("C:\Users\rhntm\test.txt")
出力:
test
System.IO.FileInfo
クラスを basename
プロパティとともに使用して、拡張子なしのファイル名を取得することもできます。
指示:
([System.IO.FileInfo]"C:\Users\rhntm\test.txt").BaseName
出力:
test
この記事では、PowerShell でパスと拡張子なしでファイル名を取得するためのさまざまな方法について説明しました。