我最近在Windows 10系统上开始使用Powershell。我创建了一个配置文件,并且我想放入一个链接到我的文档部分中的文件夹的变量。但是,我不想对路径进行硬编码,因为我知道如果我的配置文件名称在硬盘传输过程中发生变化,我就需要进入并重新编写它,就像我上次发送它时一样维修。所以我的第一个想法是把这样的东西:Resolve-Path cmdlet究竟做了什么?
$Var = $(~\Documents\Folder)
但是,吐出一个错误。然后我了解了Resolve-Path Cmdlet,一眼就可以看到我需要的东西。但是,我这样做的时候:
$Var = $(Resolve-Path ~\Documents\Folder)
...我得到这样的:
>$Var
Path
----
C:\Users\Username\Documents\Folder
>
这似乎是一个问题。但是,当我尝试cd $Var
时,它成功运行,这让我很困惑。我认为结果中无关的Path
标题会导致错误。
究竟是什么Resolve-Path
做,为什么它仍然得到正确解释时,传递到cd
?另外,有没有办法让Resolve-Path
不是包含无关信息并只返回扩展路径?
谢谢!我一定错过了返回类型,否则我会更深入地考虑它。选择'只是说'().Path'就像另一个答案所说的那样有什么特别的优势吗? – BHustus
@Bustus不,使用ether之后没有任何优势,因为它们最终都会调用相同的检索命令。 – Richard