如何在 PowerShell 中获取文件的最近子目录作为输出?

如何在 PowerShell 中获取文件的最近子目录作为输出?

我只需要从文件路径中获取最近的子目录和文件名,如下所示。

前任:-

(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 "^.*?\\"; " "}}

答案1

您可以使用对象的 Directory 属性:

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

只需使用目录对象的名称,然后使用文件的名称。

答案2

在我看来,最简单的方法是用反斜杠分割字符串:

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

(因为反斜杠是转义字符,所以必须用第二个反斜杠进行转义)。

$splitString$splitString[-1]现在是反斜杠之间的所有部分的数组。现在您可以通过(文件名)和$splitString[-2](直接父文件夹的名称)访问此数组的最后一个部分和倒数第二个部分。

相关内容