所以我有这个代码:
$userprofile=Get-ChildItem Env:USERPROFILE
$localpath="$userprofile\some\path"
我期望从
$localpath
得到以下输出:
c:\users\username\some\path
但是我得到的是:
System.Collections.DictionaryEntry\some\path
所以,像
cd $localpath
这样的东西当然会失败。我将如何完成我需要的事情?
获取字符串值而不是字典条目(从技术上讲,这就是
Get-ChildItem
正在访问的内容)的一种便捷方法是仅使用变量语法:$Env:USERPROFILE
而不是 Get-ChildItem Env:USERPROFILE
。
$localpath = "$env:USERPROFILE\some\path"
欲了解更多信息:
Join-Path
cmdlet 是组合路径的两个部分的好方法。
$localpath = Join-Path $env:USERPROFILE 'some\path'
聚会迟到了,除了这个例子是否是获取环境变量的好方法之外,问题的实际答案是这样的:
$userprofile = Get-ChildItem Env:USERPROFILE
$localpath="$($userprofile.Value)\some\path"
这可能是自最初问题以来新版本 Powershell 的功能。