PowerShell 7 Preview 3 发布
时间:2019-08-22 13:01 来源:linux.it.net.cn 作者:IT
微软发布了 PowerShell 7 Preview 3,Powershell 7 preview 3 构建在 .NET Core 3.0 preview 8 之上,.NET Core 3.0 重新引入了大量 .NET Framework API,打开了大量随 Windows 附带的 PowerShell 模块,这些模块将被验证和标记为兼容。由于对模块的兼容性更改是 Windows 的一部分,因此需要最新版本的 Windows 10/Windows Server 来实现完全模块兼容性。
默认情况下预览版中的实验特性
在默认情况下启用所有实验特性,以便让 PowerShell 委员会获得更多反馈,以确定某个特性是否应该继续作为实验功能,是否应该从实验性功能转移到稳定特性(非实验性功能),或者被删除。在稳定的版本(以及候选版本)上,默认情况下将继续禁用实验性功能。
注意,如果以前手动启用了实验特性,powershell.config.json 设置文件将优先记录,并且只会启用该文件中列出的实验性功能。你可以删除该文件或运行 Get-ExperimentalFeature | Enable-ExperimentalFeature,以确保启用了所有实验功能。但是,如果使用管道,你将不得不再次使用具有新的实验特性的预览版本。
gif
默认为单线程
在此版本之前,pwsh 默认作为多线程单元运行。但是,图形用户界面 API(如 WinForms 和 WPF)需要一个单线程单元。 此版本在单线程方面,pwsh 与 powershell.exe 相同,支持从 PowerShell 脚本调用 WinForms 和 WPF API。
gif
显示 COM 方法签名参数名
现在 Windows 上,如果从 PowerShell 调用 COM API,nbkalex 的一个新功能将显示 COM 方法的参数名称,而不仅仅是类型信息,这些信息可以作为简单的文档使用,指示应该传递哪些参数。
gif
将 DBNull 和 NullString 视为 $null
使用数据库类型,可能会得到一个 [dbnull]::Value,它相当于数据库中的 $null,但是在 PowerShell 中,这并不等于 $null,所以不能直接比较它。通过对 Joelsallow 的更改,你可以将 [dbnull]::value 和 [nullstring]::value 与 $null 进行比较,并获得 $true。
gif
Read-Host 提示符对所有输入都有效
Read-host 如何调用控制台主机,以及控制台主机如何提示输入(例如给定值的强制性参数),可能就会遇到这样一种情况:即在使用某些字符时,使用 Read-host 提示脚本中的输入会出现其他意想不到的内容。此版本中已经被修复了。
gif
-Split 运算符支持负数
-Split 操作符将一个或多个字符串拆分为子字符串,你可以选择指定一个值来指示要返回的子字符串的最大数。这一新功能允许你将子字符串的最大数指定为负值,这意味着拆分应该从右向左而不是通常从左到右发生。
gif
ForEach-Object -Parallel
此版本向 ForEach-Object 添加了一个 -Parallel 参数,该对象接受脚本块并行执行。在默认为 5 的情况下,可选的 -ThrottleLimit 参数可以用来设置并行使用的最大线程。
gif
解析 appx 修复点
在 Windows 10 上,如果从 Windows Store 安装了应用程序并将它们列在命令行中,它们将显示为 0 字节文件。这些文件实际上是到实际可执行文件的不同类型的链接。使用此更改后,目标可执行文件将在使用 get-child Item 时显示.
gif
pwsh 作为登录 shell
在 Linux 和 MacOS 系统上,有一个登录 shell 的概念,它设置其他应用程序和 shell 继承的环境。在此版本之前,如果你使用 pwsh 作为默认登录 shell,会注意到一些环境变量丢失或不完整。
通过此更改,pwsh 将与 sh Bourne Shell 在设置登录环境方面的工作方式相同,从而使一切正常工作。
Telemetry
在这个预览版本中,增加了更多的遥测技术,详情见博客。
这个版本也包含了许多 bug 修复以及有针对性的性能改进,请见更改日志:
https://github.com/PowerShell/PowerShell/releases
下载地址:
https://aka.ms/get-powershell (责任编辑:IT)
微软发布了 PowerShell 7 Preview 3,Powershell 7 preview 3 构建在 .NET Core 3.0 preview 8 之上,.NET Core 3.0 重新引入了大量 .NET Framework API,打开了大量随 Windows 附带的 PowerShell 模块,这些模块将被验证和标记为兼容。由于对模块的兼容性更改是 Windows 的一部分,因此需要最新版本的 Windows 10/Windows Server 来实现完全模块兼容性。 默认情况下预览版中的实验特性 在默认情况下启用所有实验特性,以便让 PowerShell 委员会获得更多反馈,以确定某个特性是否应该继续作为实验功能,是否应该从实验性功能转移到稳定特性(非实验性功能),或者被删除。在稳定的版本(以及候选版本)上,默认情况下将继续禁用实验性功能。 注意,如果以前手动启用了实验特性,powershell.config.json 设置文件将优先记录,并且只会启用该文件中列出的实验性功能。你可以删除该文件或运行 Get-ExperimentalFeature | Enable-ExperimentalFeature,以确保启用了所有实验功能。但是,如果使用管道,你将不得不再次使用具有新的实验特性的预览版本。 gif 默认为单线程 在此版本之前,pwsh 默认作为多线程单元运行。但是,图形用户界面 API(如 WinForms 和 WPF)需要一个单线程单元。 此版本在单线程方面,pwsh 与 powershell.exe 相同,支持从 PowerShell 脚本调用 WinForms 和 WPF API。 gif 显示 COM 方法签名参数名 现在 Windows 上,如果从 PowerShell 调用 COM API,nbkalex 的一个新功能将显示 COM 方法的参数名称,而不仅仅是类型信息,这些信息可以作为简单的文档使用,指示应该传递哪些参数。 gif 将 DBNull 和 NullString 视为 $null 使用数据库类型,可能会得到一个 [dbnull]::Value,它相当于数据库中的 $null,但是在 PowerShell 中,这并不等于 $null,所以不能直接比较它。通过对 Joelsallow 的更改,你可以将 [dbnull]::value 和 [nullstring]::value 与 $null 进行比较,并获得 $true。 gif Read-Host 提示符对所有输入都有效 Read-host 如何调用控制台主机,以及控制台主机如何提示输入(例如给定值的强制性参数),可能就会遇到这样一种情况:即在使用某些字符时,使用 Read-host 提示脚本中的输入会出现其他意想不到的内容。此版本中已经被修复了。 gif -Split 运算符支持负数 -Split 操作符将一个或多个字符串拆分为子字符串,你可以选择指定一个值来指示要返回的子字符串的最大数。这一新功能允许你将子字符串的最大数指定为负值,这意味着拆分应该从右向左而不是通常从左到右发生。 gif ForEach-Object -Parallel 此版本向 ForEach-Object 添加了一个 -Parallel 参数,该对象接受脚本块并行执行。在默认为 5 的情况下,可选的 -ThrottleLimit 参数可以用来设置并行使用的最大线程。 gif 解析 appx 修复点 在 Windows 10 上,如果从 Windows Store 安装了应用程序并将它们列在命令行中,它们将显示为 0 字节文件。这些文件实际上是到实际可执行文件的不同类型的链接。使用此更改后,目标可执行文件将在使用 get-child Item 时显示. gif pwsh 作为登录 shell 在 Linux 和 MacOS 系统上,有一个登录 shell 的概念,它设置其他应用程序和 shell 继承的环境。在此版本之前,如果你使用 pwsh 作为默认登录 shell,会注意到一些环境变量丢失或不完整。 通过此更改,pwsh 将与 sh Bourne Shell 在设置登录环境方面的工作方式相同,从而使一切正常工作。 Telemetry 在这个预览版本中,增加了更多的遥测技术,详情见博客。 这个版本也包含了许多 bug 修复以及有针对性的性能改进,请见更改日志: https://github.com/PowerShell/PowerShell/releases 下载地址: https://aka.ms/get-powershell (责任编辑:IT) |