powershell - 具有多个 PowerShell 版本的 SpecialFolders
问题描述
PS2.0 中是否有方法可以获取一些直到更高版本才枚举的特殊文件夹?例如,[Environment]::GetFolderPath("ProgramFilesX86")
在 PS5.0 中工作,但在 PS2.0 中产生枚举错误。我在想也许有一种基于 .NET 的方法,但我的 Google fu 让我认为即使在 Framework 4 之前的 .NET 中也没有办法,但这似乎也是一个非常明显的疏忽。
解决方案
下面的第一个命令在 Windows 10 1803 上的 PowerShell 5.1.1 中返回 47。在同一系统上的 PowerShell 2.0 中,它返回 23。如果您删除了 Measure-Object 的管道和 Count 属性点符号,它实际上会显示您可以使用的文件夹的名称。这是以下命令的秒数。
([enum]::GetNames([System.Environment+SpecialFolder]) | Measure-Object).Count
([enum]::GetNames([System.Environment+SpecialFolder]) | Sort-Object) -join "`n"
PowerShell 2.0 特殊文件夹:
ApplicationData
CommonApplicationData
CommonProgramFiles
Cookies
Desktop
DesktopDirectory
Favorites
History
InternetCache
LocalApplicationData
MyComputer
MyDocuments
MyMusic
MyPictures
Personal
ProgramFiles
Programs
Recent
SendTo
StartMenu
Startup
System
Templates
推荐阅读
- android - 如何在 Android Studio 中逐步创建 layout-sw380dp 文件夹
- ionic-framework - ionChange 使用 ion-select 传递的数据不会作为输入传递给 api - Ionic
- java - 使用 Java Stream 创建对象数组
- apache-kafka - 是否可以选择删除主题中超过一小时的 kafka 主题旧消息
- reactjs - 使用多种形式保存图片和文章
- chef-infra - 刀 boostrap 互动装置
- azure-devops - 如何在 Azure DevOps 中删除 TFVC 存储库?
- angular - 将函数从 component.ts 文件移动到 Angular 中的单独文件中
- mongodb - Login 无法从 mongo Shell 连接到我的集群。
- c++ - 仅用于测试的处理构造函数的优雅方式