使用 PowerShell 从路径中提取文件名

Rohan Timalsina 2023年1月30日 2022年7月18日
  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 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