如何在 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