2016-12-08 51 views
2

所以我有這樣的代碼:PowerShell的連接具有路徑環境變量

$userprofile=Get-ChildItem Env:USERPROFILE 
$localpath="$userprofile\some\path" 

我期望的下方輸出$localpath

c:\users\username\some\path 

但是我得到的是:

System.Collections.DictionaryEntry\some\path 

所以,當然,像cd $localpath這樣的東西失敗了。我將如何完成我所需要的?

回答

4

一個方便的方式獲取字符串值,而不是字典條目(這在技術上是什麼Get-ChildItem正在訪問)是隻使用變量語法:$Env:USERPROFILE而非Get-ChildItem Env:USERPROFILE

$localpath = "$env:USERPROFILE\some\path" 

欲瞭解更多信息:

PowerShell Environment Provider

about_Environment_Variables

此外,Join-Path cmdlet的是路徑的兩個部分結合起來的好方法。

$localpath = Join-Path $env:USERPROFILE 'some\path' 
+0

@AnsgarWiechers感謝提供實例的周到編輯。 –

+0

如果您來自Windows腳本的CMD重度世界,請不要忘記在您的setter名稱中包含'$'。在CMD中,'Set varname = something'必須是''varname = something',_ ** not ** _'varname = something'。 –