使用 PowerShell 從路徑中提取檔名

Rohan Timalsina 2023年1月30日
  1. 在 PowerShell 中使用 Split-Path Cmdlet 從路徑中提取檔名
  2. 在 PowerShell 中使用 GetFileName 方法從路徑中提取檔名
  3. 在 PowerShell 中使用 Get-Item Cmdlet 從路徑中提取檔名
使用 PowerShell 從路徑中提取檔名

檔案路徑告訴檔案在系統上的位置。在 PowerShell 中處理檔案時,你可能只需要從路徑中獲取檔名。

在 PowerShell 中有多種方法可以獲取檔案的路徑。本教程將教你使用 PowerShell 從檔案路徑中提取檔名。

在 PowerShell 中使用 Split-Path Cmdlet 從路徑中提取檔名

Split-Path cmdlet 在 PowerShell 中顯示給定路徑的指定部分。路徑的一部分只能是父資料夾、子資料夾、檔名或副檔名。

要提取帶有副檔名的檔名,請使用帶有 -Leaf 引數的 Split-Path 命令。

Split-Path C:\pc\test_folder\hello.txt -Leaf

輸出:

hello.txt

要獲取不帶副檔名的檔名,可以使用 -LeafBase 引數。此引數僅在 PowerShell 6.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 Cmdlet 從路徑中提取檔名

Get-Item cmdlet 在指定位置提取專案。如果專案存在於指定路徑,則返回檔案的 DirectoryModeLastWriteTimeLengthName

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 cmdlet。

(Get-ChildItem C:\pc\test_folder\hello.txt).Name
(Get-ChildItem C:\pc\test_folder\hello.txt).BaseName

輸出:

hello.txt
hello
作者: Rohan Timalsina
Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website

相關文章 - PowerShell File