我已经成功地使用[environment]::getfolderpath("ProgramFiles"),以获得路径程序文件,但现在我有必要还可以访问程序数据,它看起来从这个枚举像ProgramData不可用此方法。是真的,还是我在这里想念东西?
最快的方法是使用$env:ProgramDataBenH在问题注释中已经指出的方法。
使用.net Specialfolder,您将需要使用CommonApplicationData
尽管不使用字符串,例如您的初始示例:
[Environment]::GetFolderPath('CommonApplicationData')
我建议您使用枚举,因为在开发时,您将可能的枚举值直接输入到智能感知中。
[Environment]::GetFolderPath([System.Environment+SpecialFolder]::CommonApplicationData)
Run Code Online (Sandbox Code Playgroud)
最后,由于您知道要查找的路径,但不知道相应的变量,因此可以使用类似以下内容的方法将它们全部列出:
$SpecialFolders = New-Object -TypeName psobject
[Environment+SpecialFolder]::GetNames([Environment+SpecialFolder]) | sort |
foreach {Add-Member -InputObject $SpecialFolders -Type NoteProperty -Name
($_) -Value ([Environment]::GetFolderPath($_)) }
$SpecialFolders | fl
Run Code Online (Sandbox Code Playgroud)
使用该代码段,您可以确定c:\ programdata是属于CommonApplicationData的特殊文件夹路径。
如果指定的文件夹不在$ env范围内(例如:我的文档专用文件夹),则枚举仍然可以派上用场。
| 归档时间: |
|
| 查看次数: |
2814 次 |
| 最近记录: |