getfolderpath&计划数据

时间:2017-09-07 14:45:19

标签: powershell

我已成功使用[environment]::getfolderpath("ProgramFiles")来获取程序文件的路径,但现在我还需要访问程序数据,它看起来像this枚举,如ProgramData不可用方法。这是真的,还是我在这里遗漏了什么?

2 个答案:

答案 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 范围内(例如:我的文档特殊文件夹),则枚举仍然很方便。