PowerShell 7 Preview 5 släppt, här är vad som är nytt
Microsoft släpper en ny förhandsversion av nästa generations PowerShell-skriptspråk. Intressanta användare kan få Preview 5 av PowerShell 7. Den innehåller ett antal nya funktioner och många buggfixar från både communityn och PowerShell-teamet.
PowerShell är en avancerad form av kommandotolk. Den är utökad med en enorm uppsättning färdiga cmdlets och kommer med möjligheten att använda .NET framework/C# i olika scenarier. Windows innehåller ett GUI-verktyg, PowerShell ISE, som tillåter redigering och felsökning av skript på ett användbart sätt.
PowerShell 7 är det första kommandoradsskalet och skriptspråkspaketet baserat på .NET Core 3.0. Det kan uppnå kompatibilitet med 90+% av inkorgen Windows PowerShell-moduler genom att utnyttja förändringar i .NET Core 3.0 som tar tillbaka många API: er som krävs av moduler byggda på .NET Framework så att de fungerar med .NET Core körning.
Microsoft är på väg att släppa ytterligare en förhandsversion nästa månad i november. Sedan, med undantag för eventuella kvalitetsproblem, en frisläppande kandidat i december i linje med
.NET Core 3.1 slutlig utgåva. Slutligen förväntar de sig General Availability av PowerShell 7 i januari som deras första Long Term Service-version.Mellan Release Candidate och General Availability accepterar Microsoft endast kritiska buggfixar och inga nya funktioner kommer att inkluderas. För det släppet, några Experimentella funktioner kommer att betraktas som designstabil och inte längre vara experimentell. Detta innebär att alla framtida designändringar för dessa funktioner kommer att betraktas som en brytande förändring.
Nya funktioner i Preview 5
Den här utgåvan har ett antal nya funktioner från både communityn och PowerShell-teamet. Förhandsversioner av PowerShell kan installeras sida vid sida med stabila versioner så att du kan använda båda.
Kedjeoperatörer
Den nya Pipeline Chain Operatörer tillåta villkorlig exekvering av kommandon beroende på om det föregående kommandot lyckades eller inte. Detta fungerar med både inbyggda kommandon och PowerShell-cmdlets eller funktioner. Innan den här funktionen kunde du redan göra detta genom att använda om
uttalanden tillsammans med att kontrollera om $?
indikerade att det sista uttalandet lyckades eller misslyckades. Denna nya operatör gör detta enklare och konsekvent med andra skal.
Null villkorade operatörer för sammanslagning och tilldelning
Ofta i dina skript kan du behöva kontrollera om en variabel är $null eller om en egenskap är $null innan du använder den. De nya Null-villkorsoperatörerna gör detta enklare.
Den nya ??
noll koalescerande operatör tar bort behovet av om
och annan
uttalanden om du vill få värdet av ett uttalande om det inte är $null eller returnera något annat om det är $null. Observera att detta inte ersätter kontrollen för ett booleskt värde på sant eller falskt, det kontrollerar bara om det är $null.
Den nya ??=
null villkorlig tilldelningsoperator gör det enkelt att tilldela en variabel ett värde endast om den inte är $null.
Nytt PowerShell-versionsmeddelande
Med hjälp av telemetri har teamet kommit på att många användare använder föråldrade PowerShell-versioner. Från och med PowerShell 7 kommer konsolen att annonsera en ny version där den är tillgänglig.
Mer information om den här funktionen inklusive hur du inaktiverar den i Meddelande om RFC versionsuppdatering
Tabellkomplettering för variabeltilldelning
Den här nya funktionen låter dig använda tabbkomplettering vid variabeltilldelning och få tillåtna värden för uppräkningar eller variabler med typbegränsningar som [ValidateSet()]
. Detta gör det enkelt att byta $ErrorActionPreference
eller det nya $ErrorView
(detaljerat nedan) till giltiga värden utan att behöva skriva ut dem.
Format-Hex förbättrad formatering
Denna förbättring kommer från Joel Sallow tillverkning Format-Hex
mer användbart när du visar olika typer av objekt i en pipeline samt stödjer visning av fler typer av objekt.
Get-HotFix är tillbaka
De Get-HotFix
cmdlet fungerar bara på Windows och kommer att fråga systemet om vilka patchar som har installerats. Detta var tidigare inte tillgängligt i PowerShell Core 6 eftersom det berodde på Systemet. Hanteringsnamnutrymme som inte var tillgängligt på .NET Core 2.x som PowerShell Core 6.x bygger på. Men .NET Core 3.0 som PowerShell 7 är byggd på återförde detta namnutrymme (endast för Windows) så vi återaktiverade denna cmdlet.
Det finns en fördröjning att få resultat i det här exemplet på grund av antalet patchar som författaren har på sin Windows 7 VM.
Select-String lägger till betoning
Detta var en HackIllinois projekt av Derek Xia som använder omvänt färgad text för att markera texten i en sträng som matchar urvalskriterierna. Det finns en valfri -Ingen betoning
växla för att undertrycka betoningen.
ConciseView för fel
En del feedback från användare som vi konsekvent har fått handlar om mängden röd text du får när du stöter på ett fel i PowerShell.
De $ErrorView
preferensvariabel låter dig ändra formateringen av fel. Tidigare stödde det Normalvy
(standard) samt en mer kortfattad CategoryView
. Denna funktion lägger till en ConciseView
där de flesta kommandon bara returnerar det relevanta felmeddelandet. I fall där det finns ytterligare kontextuell information i en skriptfil eller platsen i ett skript block får du radnumret, textraden i fråga och en pekare till var felet uppstod inträffade.
Denna nya vy är en del av Uppdatera Error View RFC så ge feedback där.
Get-Error cmdlet
Medan ConciseView
ger dig mer exakt, men begränsad information om fel, har vi lagt till en ny cmdlet Få-fel
för att få mycket rikare information om fel.
Som standard, bara att köra Få-fel
visar en formaterad vy av det senaste felet, inklusive att visa specifika kapslade typer som Exceptions och ErrorRecords, vilket gör det lättare att diagnostisera vad som gick fel.
Denna nya cmdlet är en del av Uppdatera Error View RFC så ge feedback där.
PowerShell 7 kommer att uppdateras på månadsbasis, så användare kan förvänta sig fler förhandsversioner av skriptspråket innan det når allmän tillgänglighet nästan en månad efter .NET Core 3.0.
Se också Release Notes för alla detaljer om vad som ingår i den här utgåvan.
Källa: Microsoft