如何在 PowerShell 中从文件名中移除路径和扩展名

  1. 使用 BaseName 属性在 PowerShell 中从文件名中移除路径和扩展名
  2. 使用 System.IO.Path 类在 PowerShell 中从文件名中移除路径和扩展名
  3. 结论
如何在 PowerShell 中从文件名中移除路径和扩展名

PowerShell 支持处理系统中的各种文件操作。您可以在 PowerShell 中执行创建、复制、移动、重命名、编辑、删除和查看文件等任务。

PowerShell 中有不同的 cmdlet 可用于获取文件的名称完整路径扩展名。在处理系统中的文件时,您可能需要获取没有路径和扩展名的文件名。

本教程将教您如何在 PowerShell 中从文件名中移除路径和扩展名。

使用 BaseName 属性在 PowerShell 中从文件名中移除路径和扩展名

PowerShell 中的 Get-Item cmdlet 是一个多功能工具,用于检索您文件系统中项目的属性,例如文件和目录。其中一个属性是 .BaseName,这对于我们的目的尤其有用。

示例:

(Get-Item "sample.txt").BaseName

在这个示例中,脚本假定 sample.txt 是当前目录中的一个文件。如果该文件在不同的目录中,您需要包括完整路径,例如 C:\folder\sample.txt

当我们执行 (Get-Item "sample.txt").BaseName 时,PowerShell 执行两个关键操作。

首先,Get-Item "sample.txt" 获取与 sample.txt 对应的文件对象。然后,.BaseName 访问此文件对象的属性,该属性包含没有扩展名的文件名。

输出:

在 PowerShell 中从文件名中移除路径和扩展名 - 输出 1

如果您想在多个文件中移除路径和扩展名,可以使用 Get-ChildItem cmdlet。以下命令显示如何在 PowerShell 中获取多个没有路径和扩展名的文件名。

示例

(Get-ChildItem "*.txt").BaseName

该行代码将列出指定目录中所有 .txt 文件的基础名称(没有扩展名的文件名)。

  • Get-ChildItem "*.txt":这个命令从指定目录中获取所有 .txt 文件。

  • .BaseName:此属性被访问以获取每个由 Get-ChildItem 返回的文件对象,仅提取没有扩展名的文件名。

输出:

在 PowerShell 中从文件名中移除路径和扩展名 - 输出 2

您也可以使用 System.IO.FileInfo 类和 basename 属性来获取没有扩展名的文件名。

System.IO.FileInfo 是一个 .NET 类,提供有关文件创建、复制、删除、移动和打开的属性和实例方法。它还提供关于文件的详细信息,例如其名称、路径、大小等。

示例:

([System.IO.FileInfo]"sample.txt").BaseName

此行假定 sample.txt 是当前目录中的一个文件。如果该文件在其他地方,则应指定完整路径,例如 C:\path\to\sample.txt

在这个例子中,([System.IO.FileInfo]"sample.txt") 为文件 sample.txt 创建一个 FileInfo 对象。此对象包含有关该文件的详细信息。

通过访问此对象的 .BaseName 属性,我们可以检索没有扩展名的文件名。

输出:

在 PowerShell 中删除文件名中的路径和扩展名 - 输出 3

使用 System.IO.Path 类在 PowerShell 中从文件名中移除路径和扩展名

System.IO.Path 类提供了许多方法用于字符串操作文件路径。特别是,GetFileNameWithoutExtension 方法用于从完整路径字符串中获取没有扩展名的文件名。

示例:

[System.IO.Path]::GetFileNameWithoutExtension("sample.txt")

此示例假设 sample.txt 指的是没有任何目录路径的文件名。如果文件位于不同的目录中,您需要包含完整路径,例如 "C:\folder\sample.txt"

[System.IO.Path]::GetFileNameWithoutExtension("sample.txt"),PowerShell 利用 System.IO.Path 类中的 GetFileNameWithoutExtension 方法处理字符串 "sample.txt"。该方法智能解析字符串,识别文件扩展名并将其移除,仅返回基础文件名。

该方法非常高效,不需要实际文件存在,因为它仅在字符串级别上操作。

输出:

在 PowerShell 中从文件名中移除路径和扩展名 - 输出 4

结论

总之,掌握 PowerShell 中的文件操作对于高效的系统管理至关重要,本文重点介绍了使用多种方法从文件名中移除路径和扩展名。从简单的 (Get-Item "sample.txt").BaseName 开始处理单个文件,我们逐步进展到使用 (Get-ChildItem "C:\Users\rhntm\*.txt").BaseName 处理多个文件,这是一种对批量操作非常有价值的方法。

更面向对象的 [System.IO.FileInfo] 类与 ([System.IO.FileInfo]"sample.txt").BaseName 提供了详细的文件信息,而字符串操作强大的 [System.IO.Path]::GetFileNameWithoutExtension("sample.txt") 展示了 .NET 类的力量。这些方法展示了 PowerShell 的多功能性,对于希望加深专业知识的人,探索相关主题,如处理完整文件路径和提取文件扩展名,是一个合乎逻辑的进步,充分释放 PowerShell 在综合系统脚本和自动化任务中的潜力。

Enjoying our tutorials? Subscribe to DelftStack on YouTube to support us in creating more high-quality video guides. Subscribe
作者: 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