使用 PowerShell 獲取副檔名
-
在 PowerShell 中使用
Split-Path
獲取副檔名 -
在 PowerShell 中使用
Get-ChildItem
Cmdlet 獲取副檔名 -
在 PowerShell 中使用
.NET
框架獲取副檔名
在處理 PowerShell 指令碼時,通常需要從完整路徑中提取檔名。例如,你的指令碼收到了完整的檔案路徑,而你只想獲取副檔名。
本文將討論幾種使用 PowerShell 指令碼的檔案擴充套件方法。
在 PowerShell 中使用 Split-Path
獲取副檔名
要從檔名中分離副檔名,我們可以使用 -Leaf
引數來指示我們將在哪裡提取副檔名。葉是路徑的最後一個元素或一部分。
$filePath = "C:\temp\subfolder\File1.txt";
$extension = (Split-Path -Path $filePath -Leaf).Split(".")[1];
Write-Output $extension
輸出:
txt
你可能會注意到,在我們的程式碼片段中,我們呼叫了 Split()
函式來拆分提供的路徑。
我們使用點 .
作為分隔符,因為檔名和副檔名由點分隔符分隔。然後我們將儲存的擴充套件值稱為陣列 [1]
。
嘗試呼叫陣列 [0]
,你將獲得路徑的檔名。
示例程式碼:
(Split-Path -Path $filePath -Leaf).Split(".")[0];
輸出:
File1
由於我們使用點字元作為分隔符,因此此方法僅在你的檔名不包含任何其他點時才有效。請記住,點字元可以在檔名中。
在 PowerShell 中使用 Get-ChildItem
Cmdlet 獲取副檔名
Get-ChildItem
命令在一個或多個指定位置獲取專案。例如,如果物件是一個容器,它會獲取該容器內的東西,稱為子項。
位置可以是檔案系統,例如目錄,也可以是由不同的 Windows PowerShell 提供程式公開的站點。Get-ChildItem
命令獲取檔案系統驅動器中的目錄、子目錄和檔案。
由於 Get-ChildItem
cmdlet 處理檔案,它有一個 PowerShell 屬性屬性,我們可以匯出該屬性以獲取查詢檔案的副檔名。
與 Split-Path
cmdlet 不同,即使檔名中有點字元,此方法也可以正確傳送副檔名。
示例程式碼:
Get-ChildItem 'C:\temp\file.1.txt' | Select Extension
輸出:
Extension
---------
.txt
在 PowerShell 中使用 .NET
框架獲取副檔名
以下方法基於 .NET
框架類。儘管通常不鼓勵在 PowerShell 指令碼上使用 .NET
框架類,尤其是在本機 PowerShell 命令可用的情況下,但它可能適合此特定用例。
在下面的示例中,如果給定檔名,我們將使用 System.IO.Path
類中的 GetExtension
靜態方法:
示例程式碼:
[System.IO.Path]::GetExtension("File1.txt")
輸出:
.txt
如果我們想獲取檔名,我們也可以使用 GetFileNameWithoutExtension
靜態方法。
示例程式碼:
[System.IO.Path]::GetFileNameWithoutExtension("File1.txt")
輸出:
File1
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn