我最近在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