提问人:KyferEz 提问时间:12/9/2016 最后编辑:mklement0KyferEz 更新时间:10/17/2023 访问量:25698
Powershell 将环境变量与路径连接起来
Powershell concatenate an Environment variable with path
问:
所以我有这个代码:
$userprofile=Get-ChildItem Env:USERPROFILE
$localpath="$userprofile\some\path"
我希望以下输出:$localpath
c:\users\username\some\path
但是,我得到的是:
System.Collections.DictionaryEntry\some\path
所以,当然,类似的东西会失败。我将如何完成我需要的东西?cd $localpath
答:
27赞
John K
12/9/2016
#1
获取字符串值而不是字典条目(从技术上讲是访问的)的一种便捷方法是仅使用变量语法:而不是 .Get-ChildItem
$Env:USERPROFILE
Get-ChildItem Env:USERPROFILE
$localpath = "$env:USERPROFILE\some\path"
欲了解更多信息:
此外,Join-Path
cmdlet 是合并路径的两个部分的好方法。
$localpath = Join-Path $env:USERPROFILE 'some\path'
评论
0赞
John K
12/9/2016
@AnsgarWiechers 感谢您提供示例的深思熟虑的编辑。
2赞
kayleeFrye_onDeck
1/23/2018
如果您来自 CMD 繁重的 Windows 脚本世界,请不要忘记在您的 setter 名称中包含。在 CMD 中,必须是 , ,而不是 .$
Set varname=something
$varname=something
varname=something
0赞
Daap
10/17/2023
#2
迟到了,除了这个例子是否是获取环境变量的好方法之外,这个问题的实际答案是这样的:
$userprofile = Get-ChildItem Env:USERPROFILE
$localpath="$($userprofile.Value)\some\path"
不过,这可能是自原始问题以来较新版本的 Powershell 的功能。
评论