我正在尝试将当前文件夹名称存储到一个变量中(仅限文件夹名称,而不是完整路径)。
我在互联网上找到的所有内容都像这样:
PS C:\temp> get-location
Path
----
C:\temp
但是我想要的只是将"temp"存储在一个变量中。我该怎么做呢?
我正在尝试将当前文件夹名称存储到一个变量中(仅限文件夹名称,而不是完整路径)。
我在互联网上找到的所有内容都像这样:
PS C:\temp> get-location
Path
----
C:\temp
但是我想要的只是将"temp"存储在一个变量中。我该怎么做呢?
Split-Path
命令并带上-Leaf
参数从Get-Location
中获取文件夹名称。PS C:\temp> Get-Location
Path
----
C:\temp
PS C:\temp> Split-Path -Path (Get-Location) -Leaf
temp
我们还可以使用自动变量$PWD
来获取当前目录:
PS C:\temp> Split-Path -Path $pwd -Leaf
temp
或者使用自动变量$PSScriptRoot
,该变量使用运行脚本的当前目录:
Split-Path -Path $PSScriptRoot -Leaf
从-Leaf
的文档中可知:
表示此 cmdlet 只返回路径中的最后一个项目或容器。例如,在路径 C:\Test\Logs\Pass1.log 中,它只返回 Pass1.log。
另外,正如@Scepticalist在评论中提到的,我们可以使用Get-Item
并从特定文件夹(而不仅是当前工作目录)选择BaseName
和Select-Object
。
PS C:\> Get-Item -Path c:\temp | Select-Object -Property BaseName
BaseName
--------
temp
或者使用成员枚举(PowerShell v3+)直接选择BaseName
属性:
PS C:\> (Get-Item -Path C:\temp).BaseName
temp
(Get-Item -Path C:\temp).BaseName
来获取基本名称。 - RoadRunnerSplit-Path $PSScriptRoot -Leaf
。 - Theo