微軟發布PowerShell 7 Preview 3
微軟發布了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,以確保啟用了所有實驗功能。但是,如果使用管道,你將不得不再次使用具有新的實驗特性的預覽版本。
默認為單線程
在此版本之前,pwsh 默認作為多線程單元運行。但是,圖形用戶界面API(如WinForms 和WPF)需要一個單線程單元。此版本在單線程方面,pwsh 與powershell.exe 相同,支持從PowerShell 腳本調用WinForms 和WPF API。
顯示COM 方法簽名參數名
現在Windows上,如果從PowerShell調用COM API,nbkalex的一個新功能將顯示COM方法的參數名稱,而不僅僅是類型信息,這些信息可以作為簡單的文檔使用,指示應該傳遞哪些參數。
將DBNull 和NullString 視為$null
使用數據庫類型,可能會得到一個[dbnull]::Value,它相當於數據庫中的$null,但是在PowerShell 中,這並不等於 $null,所以不能直接比較它。通過對Joelsallow 的更改,你可以將[dbnull]::value 和[nullstring]::value 與$null 進行比較,並獲得$true。
Read-Host 提示符對所有輸入都有效
Read-host 如何調用控制台主機,以及控制台主機如何提示輸入(例如給定值的強制性參數),可能就會遇到這樣一種情況:即在使用某些字符時,使用Read-host 提示腳本中的輸入會出現其他意想不到的內容。此版本中已經被修復了。
-Split 運算符支持負數
-Split 操作符將一個或多個字符串拆分為子字符串,你可以選擇指定一個值來指示要返回的子字符串的最大數。這一新功能允許你將子字符串的最大數指定為負值,這意味著拆分應該從右向左而不是通常從左到右發生。
ForEach-Object -Parallel
此版本向ForEach-Object 添加了一個-Parallel 參數,該對象接受腳本塊並行執行。在默認為5 的情況下,可選的-ThrottleLimit 參數可以用來設置並行使用的最大線程。
解析appx 修復點
在Windows 10 上,如果從Windows Store 安裝了應用程序並將它們列在命令行中,它們將顯示為0 字節文件。這些文件實際上是到實際可執行文件的不同類型的鏈接。使用此更改後,目標可執行文件將在使用get-child Item 時顯示.
pwsh 作為登錄shell
在Linux 和MacOS 系統上,有一個登錄shell 的概念,它設置其他應用程序和shell 繼承的環境。在此版本之前,如果你使用pwsh 作為默認登錄shell,會注意到一些環境變量丟失或不完整。
通過此更改,pwsh 將與sh Bourne Shell 在設置登錄環境方面的工作方式相同,從而使一切正常工作。
Telemetry
在這個預覽版本中,增加了更多的遙測技術,詳情見博客。
這個版本也包含了許多bug 修復以及有針對性的性能改進,請見更改日誌:
https://github.com/PowerShell/PowerShell/releases
下載地址: