我已成功使用[environment]::getfolderpath("ProgramFiles")
来获取程序文件的路径,但现在我还需要访问程序数据,它看起来像this枚举,如ProgramData不可用方法。这是真的,还是我在这里遗漏了什么?
答案 0 :(得分:5)
$ env:访问环境变量
$env:ProgramData
答案 1 :(得分:4)
最快的方法是使用$env:ProgramData
,因为BenH已在您的问题评论中指出。
使用.net Specialfolder,你需要使用 CommonApplicationData
而不是使用字符串,例如您的初始示例:
[Environment]::GetFolderPath('CommonApplicationData')
我建议使用枚举,因为在开发时你会将可能的枚举值直接输入到intellisense中。
[Environment]::GetFolderPath([System.Environment+SpecialFolder]::CommonApplicationData)
最后,因为你知道你正在寻找的路径而不是相应的变量,你可以使用以下内容整齐地列出它们:
$SpecialFolders = New-Object -TypeName psobject
[Environment+SpecialFolder]::GetNames([Environment+SpecialFolder]) | sort |
foreach {Add-Member -InputObject $SpecialFolders -Type NoteProperty -Name
($_) -Value ([Environment]::GetFolderPath($_)) }
$SpecialFolders | fl
使用该代码段,您可以确定c:\ programdata是属于CommonApplicationData的特殊文件夹路径。
如果指定的文件夹不在 $ env 范围内(例如:我的文档特殊文件夹),则枚举仍然很方便。