如何在 PowerShell 中从文件路径中提取目录 - PowerShell常见问题解答
有时,您可能需要从文件路径中提取目录。在本 PowerShell 教程中,我将解释如何使用各种方法从 PowerShell 中的文件路径中提取目录。
要从 PowerShell 中的文件路径获取目录,可以使用带有 -Parent 参数的 Split-Path cmdlet。例如, $directoryPath=Split-Path -Path “C:\Users\ExampleUser\Documents\File.txt” -Parent 将目录路径 C:\Users\ExampleUser\Documents 存储在 $directoryPath 变量中。该方法非常高效,广泛用于 PowerShell 脚本中的路径操作。
1. 使用拆分路径 Cmdlet
要从 PowerShell 中的文件路径获取目录,请使用 Split-Path cmdlet。此 cmdlet 旨在将路径拆分为不同的部分,允许您提取所需的部分,例如目录。
这是一个简单的例子:
$filePath = "C:\Users\ExampleUser\Documents\File.txt"
$directoryPath = Split-Path -Path $filePath
Write-Output $directoryPath在此脚本中,Split-Path cmdlet 将 $filePath 变量作为输入,并仅返回路径的目录部分,然后将其存储在 $DirectoryPath 变量。
我使用 VS code 执行了 PowerShell 脚本。您可以在下面的屏幕截图中看到输出:
检索父目录
如果要检索文件路径的父目录,可以将 -Parent 参数与 Split-Path cmdlet 结合使用。
$filePath = "C:\Users\ExampleUser\Documents\File.txt"
$parentDirectory = Split-Path -Path $filePath -Parent
Write-Output $parentDirectory这将输出路径C:\Users\ExampleUser\Documents,它是指定文件的父目录。
提取叶子元素
如果要提取文件名或路径中最后一个文件夹,可以使用-Leaf参数。
$filePath = "C:\Users\ExampleUser\Documents\File.txt"
$fileName = Split-Path -Path $filePath -Leaf
Write-Output $fileName这将输出 File.txt,它是路径的叶元素。您可以在下面的屏幕截图中看到输出:
2. 使用获取位置 Cmdlet
这是在 PowerShell 中获取当前目录的另一种方法,即使用 Get-Location cmdlet。这相当于其他 shell 中的打印工作目录 (pwd) 命令。
$directoryPath = Get-Location
Write-Output $directoryPath这将输出正在执行脚本的当前目录的路径。
3. 使用.NET方法
对于那些喜欢使用 .NET 方法的人来说,PowerShell 可以与 .NET 框架交互,允许您使用其方法来操作路径。
这是一个完整的 PowerShell 脚本。
$filePath = "C:\Users\ExampleUser\Documents\File.txt"
$directoryPath = [System.IO.Path]::GetDirectoryName($filePath)
Write-Output $directoryPath[System.IO.Path]::GetDirectoryName 方法是一种 .NET 方法,它将路径作为输入并返回路径的目录部分。
结论
我希望在完成本教程后,您已经学会了如何使用 3 种不同的方法从 PowerShell 中的文件路径中提取目录。

