Powershell

如何在 PowerShell 中獲取文件的最近子目錄作為輸出?

  • May 12, 2021

我只需要從文件路徑中獲取最近的子目錄和文件名,如下所示。

前任:-

(1)E:\Dump\DumpText-1.txt - Dump\DumpText-1.txt

(2)E:\Dump\SubDump1\DumpText-1.txt - SubDump1\DumpText-1.txt

(3)E:\Dump\SubDump3\Sub_SubDump1\DumpText-1.txt -Sub_SubDump1\DumpText-1.txt

我的 PowerShell 腳本如下:

Get-ChildItem $directoryPath -Recurse | ForEach-Object -Process {if (!$_.PSIsContainer) {$_.FullName; $_.FullName -replace "^.*?\\"; " "}}

您可以使用對象的 Directory 屬性:

Get-ChildItem $directoryPath -Recurse -File | ForEach-Object {
   "$($_.FullName) - $($_.Directory.Name)\$($_.Name)"
}

只需使用 Directory 對象的名稱,然後是文件的名稱。

在我看來,最簡單的方法是在反斜杠處拆分字元串:

$splitString = "E:\Dump\SubDump3\Sub_SubDump1\DumpText-1.txt" -split "\\"

(因為反斜杠是轉義字元,它必須用第二個反斜杠轉義)。

$splitStringnow 是反斜杠之間所有部分的數組。$splitString[-1]現在您可以通過(文件名)和$splitString[-2](直接父文件夾的名稱)訪問此數組的最後一部分和倒數第二部分。

引用自:https://serverfault.com/questions/1063284