om_Språk_Nyckelord

Kort beskrivning

Beskriver nyckelorden i PowerShell-skriptspråket.

Lång beskrivning

PowerShell har följande språknyckelord. Mer information finns i avsnittet om nyckelordet och informationen som följer tabellen.

Nyckelord Hänvisning
begin about_Functions, about_Functions_Advanced
break about_Break, about_Trap
catch om_Try_Catch_Finally
class about_Classes
clean about_Functions, about_Functions_Advanced_Methods
continue om_Fortsätta, om_Fånga
data om_Datasektioner
define Reserverad för framtida användning
do om_Do, om_While
dynamicparam about_Functions_Advanced_Parameters
else about_If
elseif about_If
end about_Functions, about_Functions_Advanced_Methods
enum about_Enum
exit Beskrivs i det här avsnittet
filter about_Functions
finally om_Try_Catch_Finally
for about_For
foreach about_Foreach
from Reserverad för framtida användning
function about_Functions, about_Functions_Advanced
hidden om_Dolt
if about_If
in about_Foreach
param about_Functions
process about_Functions, about_Functions_Advanced
return om_Ater
static about_Classes
switch about_Switch
throw om_Throw, om_Funktioner_Avancerade_Metoder
trap om_Fälla, om_Bryt, om_Försök_Fånga_Till_Slut
try om_Try_Catch_Finally
until om_Do
using om_Att_använda, om_Klasser
var Reserverad för framtida användning
while about_While, about_Do

Följande nyckelord används av PowerShell-arbetsflöden:

  • inlinescript
  • parallel
  • sequence
  • workflow

PowerShell-arbetsflöden stöds endast i PowerShell 5.1. Mer information om arbetsflöden finns i Köra PowerShell-kommandon i ett arbetsflöde.

begin

Anger en del av brödtexten i en funktion, tillsammans med nyckelorden dynamicparam, processoch end. begin-instruktionslistan körs en gång innan några objekt tas emot från pipelinen.

Syntax:

function <name> {
    dynamicparam {<statement list>}
    begin {<statement list>}
    process {<statement list>}
    end {<statement list>}
}

break

Gör att ett skript avslutar en loop.

Syntax:

while (<condition>) {
   <statements>
   ...

   break
   ...

   <statements>
}

catch

Anger en instruktionslista som ska köras om ett fel inträffar i den tillhörande try-instruktionslistan. En feltyp kräver hakparenteser. Det andra par med hakparenteser anger att feltypen är valfri.

Syntax:

try {<statement list>}
catch [[<error type>]] {<statement list>}

class

Anger en ny klass i PowerShell.

Syntax:

class <class-name> {
    [[hidden] [static] <property-definition> ...]
    [<class-name>([argument-list>]) {<constructor-statement-list>} ...]
    [[hidden] [static] <method-definition> ...]
}

clean

Nyckelordet clean lades till i PowerShell 7.3. Nyckelordet definierar ett kodblock som garanterat körs efter begin, process och end block i en funktion. Till skillnad från blocket end körs alltid blocket clean, även om ett kritiskt fel uppstår i något av de andra blocken.

continue

Gör att ett skript slutar köra en loop och återgår till villkoret. Om villkoret uppfylls börjar skriptet loopen igen.

Syntax:

while (<condition>) {
   <statements>
   ...

   continue
   ...

   <statements>
}

data

I ett skript definierar ett avsnitt som isolerar data från skriptlogik. Kan också innehålla if-instruktioner och vissa begränsade kommandon.

Syntax:

data <variable> [-SupportedCommand <cmdlet-name>] {<permitted content>}

do

Används med nyckelordet while eller until som en loopkonstruktion. PowerShell kör instruktionslistan minst en gång, till skillnad från en loop som använder while.

Syntax för while:

do {<statement list>} while (<condition>)

Syntax för until:

do {<statement list>} until (<condition>)

dynamicparam

Anger en del av brödtexten i en funktion, tillsammans med nyckelorden begin, processoch end. Dynamiska parametrar läggs till vid körning.

Syntax:

function <name> {
   dynamicparam {<statement list>}
   begin {<statement list>}
   process {<statement list>}
   end {<statement list>}
}

else

Används med nyckelordet if för att ange standarduttryckslistan.

Syntax:

if (<condition>) {<statement list>}
else {<statement list>}

elseif

Används med nyckelorden if och else för att ange ytterligare villkor. Nyckelordet else är valfritt.

Syntax:

if (<condition>) {<statement list>}
elseif (<condition>) {<statement list>}
else {<statement list>}

end

Anger en del av brödtexten i en funktion, tillsammans med nyckelorden dynamicparam, beginoch end. end-instruktionslistan körs en gång efter att alla objekt har tagits emot från pipelinen.

Syntax:

function <name> {
   dynamicparam {<statement list>}
   begin {<statement list>}
   process {<statement list>}
   end {<statement list>}
}

enum

enum används för att deklarera en uppräkning. en distinkt typ som består av en uppsättning namngivna etiketter som kallas uppräkningslistan.

Syntax:

enum <enum-name> {
    <label> [= <int-value>]
    ...
}

exit

Gör att PowerShell avslutar ett skript eller en PowerShell-instans.

Syntax:

exit
exit <exitcode>

När du använder pwsh med parametern File bör själva filen .ps1 (skript) innehålla instruktioner för att hantera eventuella fel eller undantag som inträffar när skriptet körs. Du bör bara använda instruktionen exit för att ange skriptets status efter körning.

I Windows tillåts valfritt tal mellan [int]::MinValue och [int]::MaxValue.

På Unix tillåts endast positiva tal mellan [byte]::MinValue och [byte]::MaxValue. Ett negativt tal i intervallet för -1 via -255 översätts automatiskt till ett positivt tal genom att lägga till 256. Till exempel omvandlas -2 till 254.

I PowerShell anger exit-instruktionen värdet för variabeln $LASTEXITCODE. I Windows Command Shell (cmd.exe) anger exit-instruktionen värdet för miljövariabeln %ERRORLEVEL%.

Alla argument som inte är numeriska eller utanför det plattformsspecifika intervallet översätts till värdet för 0.

I följande exempel anger användaren variabelvärdet för felnivå till 4 genom att lägga till exit 4 i skriptfilen test.ps1.

C:\scripts\test>type test.ps1
1
2
3
exit 4

C:\scripts\test>pwsh -File ./test.ps1
1
2
3

C:\scripts\test>echo %ERRORLEVEL%
4

När du kör pwsh.exe -File <path to a script> och skriptfilen avslutas med ett exit kommando anges slutkoden till det numeriska argumentet som används med kommandot exit. Om skriptet inte har någon exit-instruktion är slutkoden alltid 0 när skriptet slutförs utan fel eller 1 när skriptet avslutas från ett ohanterat undantag.

filter

Anger en funktion där instruktionslistan körs en gång för varje indataobjekt. Den har samma effekt som en funktion som bara innehåller ett process block.

Syntax:

filter <name> {<statement list>}

finally

Definierar en lista med instruktioner som körs efter uttalanden som är associerade med try och catch. En finally-instruktionslista körs även om du trycker på CTRL+C för att lämna ett skript eller om du använder nyckelordet exit i skriptet.

Syntax:

try {<statement list>}
catch [<error type>] {<statement list>}
finally {<statement list>}

for

Definierar en loop med ett villkor.

Syntax:

for (<initialize>; <condition>; <iterate>) { <statement list> }

foreach

Definierar en loop med varje medlem i en samling.

Syntax:

foreach (<item> in <collection>) { <statement list> }

from

Reserverad för framtida användning.

function

Skapar en namngiven instruktionslista med återanvändbar kod. Du kan namnge omfånget som en funktion tillhör. Du kan också ange en eller flera namngivna parametrar med hjälp av nyckelordet param. I listan med funktionsdeklarationer kan du ta med dynamicparam-, begin-, process- och end-instruktionslistor.

Syntax:

function [<scope:>]<name> {
   param ([type]<$PName1> [, [type]<$PName2>])
   dynamicparam {<statement list>}
   begin {<statement list>}
   process {<statement list>}
   end {<statement list>}
}

Du kan också definiera en eller flera parametrar utanför instruktionslistan efter funktionsnamnet.

Syntax:

function [<scope:>]<name> [([type]<$PName1>, [[type]<$PName2>])] {
   dynamicparam {<statement list>}
   begin {<statement list>}
   process {<statement list>}
   end {<statement list>}
}

if

Definierar ett villkor.

Syntax:

if (<condition>) {<statement list>}

hidden

Döljer klassmedlemmar från standardresultaten för cmdleten Get-Member, IntelliSense och flikkompletteringsresultat.

Syntax:

hidden [data type] $member_name

in

Används i en foreach-instruktion för att skapa en loop som använder varje medlem i en samling.

Syntax:

foreach (<item> in <collection>){<statement list>}

param

Definierar parametrarna i en funktion.

Syntax:

function [<scope:>]<name> {
   param ([type]<$PName1>[, [[type]<$PName2>]])
   <statement list>
}

process

Anger en del av brödtexten i en funktion, tillsammans med nyckelorden dynamicparam, beginoch end. När en process-instruktionslista tar emot indata från pipelinen körs process-instruktionslistan en gång för varje element från pipelinen. Om pipelinen inte innehåller några objekt körs inte process-instruktionslistan. Om kommandot är det första kommandot i pipelinen körs process-instruktionslistan en gång.

Syntax:

function <name> {
   dynamicparam {<statement list>}
   begin {<statement list>}
   process {<statement list>}
   end {<statement list>}
}

return

Gör att PowerShell lämnar det aktuella omfånget, till exempel ett skript eller en funktion, och skriver det valfria uttrycket till utdata.

Syntax:

return [<expression>]

static

Anger att den definierade egenskapen eller metoden är gemensam för alla instanser av klassen där den definieras.

Se class för användningsexempel.

switch

Om du vill kontrollera flera villkor använder du en switch-instruktion. switch-instruktionen motsvarar en serie if-instruktioner, men det är enklare.

Instruktionen switch visar varje villkor och en valfri åtgärd. Om ett villkor är uppfyllt utförs åtgärden.

Syntax 1:

switch [-Regex|-Wildcard|-Exact][-CaseSensitive] ( <value> )
{
   <string>|<number>|<variable>|{ <expression> } {<statement list>}
   <string>|<number>|<variable>|{ <expression> } {<statement list>}
   ...

   default {<statement list>}
}

Syntax 2:

switch [-Regex|-Wildcard|-Exact][-CaseSensitive] -File <filename>
{
   <string>|<number>|<variable>|{ <expression> } {<statement list>}
   <string>|<number>|<variable>|{ <expression> } {<statement list>}
   ...

   default {<statement list>}
}

throw

Kastar ett objekt som ett felmeddelande.

Syntax:

throw [<object>]

trap

Definierar en instruktionslista som ska köras om ett fel påträffas. En feltyp kräver hakparenteser. Det andra par med hakparenteser anger att feltypen är valfri.

Syntax:

trap [[<error type>]] {<statement list>}

try

Definierar en instruktionslista som ska kontrolleras för fel medan instruktionerna körs. Om ett fel inträffar fortsätter PowerShell att köras i en catch- eller finally-instruktion. En feltyp kräver hakparenteser. Det andra par med hakparenteser anger att feltypen är valfri.

Syntax:

try {<statement list>}
catch [[<error type>]] {<statement list>}
finally {<statement list>}

until

Används i en do-instruktion som en loopkonstruktion där instruktionslistan körs minst en gång.

Syntax:

do {<statement list>} until (<condition>)

using

Gör att du kan ange vilka namnområden som används i sessionen. Typnamn, klasser och medlemmar kräver mindre inmatning för att referera till dem. Du kan också ta med klasser från moduler.

Namnområdessyntax:

using namespace <.NET-namespace>

Modulsyntax:

using module <module-name>

Sammansättningssyntax:

using assembly <.NET-assembly-path>

Mer information finns i about_Using.

while

Instruktionen while är en loopkonstruktion där villkoret testas innan satserna körs. Om villkoret är falskt, körs inte satserna.

Instruktionssyntax:

while (<condition>) {
   <statements>
 }

När den används i en do-instruktion är while en del av en loopkonstruktion där instruktionslistan körs minst en gång.

do loop syntax:

do {<statement list>} while (<condition>)

Se även