about_script_blocks - PowerShell command help and examples

Defines what a script block is and explains how to use script blocks in (about_script_blocks)

TOPIC
about_Script_Blocks
SHORT DESCRIPTION
Defines what a script block is and explains how to use script blocks in the Windows PowerShell programming language.
LONG DESCRIPTION
In the Windows PowerShell programming language, a script block is a collection of statements or expressions that can be used as a single unit. A script block can accept arguments and return values. Syntactically, a script block is a statement list in braces, as shown in the following syntax: {<statement list>} A script block returns the output of all the commands in the script block, either as a single object or as an array. Like functions, a script block can include parameters. Use the Param keyword to assign named parameters, as shown in the following syntax: { param ([type]$parameter1 [,[type]$parameter2]) <statement list> } In a script block, unlike a function, you cannot specify parameters outside the braces. Like functions, script blocks can include the DynamicParam, Begin, Process, and End keywords. For more information, see about_Functions and about_Functions_Advanced. Using Script Blocks A script block is an instance of a Microsoft .NET Framework type (System.Management.Automation.ScriptBlock). Commands can have script block parameter values. For example, the Invoke-Command cmdlet has a ScriptBlock parameter that takes a script block value, as shown in this example: C:\PS> invoke-command -scriptblock { get-process } Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName ------- ------ ----- ----- ----- ------ -- ----------- 999 28 39100 45020 262 15.88 1844 communicator 721 28 32696 36536 222 20.84 4028 explorer . . . The script block that is used as a value can be more complicated, as shown in the following example: C:\PS> invoke-command -scriptblock { param ($uu = "Parameter"); "$uu assigned." } Parameter assigned. The script block in the preceding example uses the Param keyword to create a parameter that has a default value. The following example uses the Args parameter of the Invoke-Command cmdlet to assign a different value to the parameter: C:\PS> invoke-command -scriptblock {param ($uu = "Parameter"); "$uu assigned."} -args "Other value" Other value assigned. You can assign a script block to a variable, as shown in the following example: C:\PS> $a = {param ($uu = "Parameter"); "$uu assigned."} You can use the variable with a cmdlet such as Invoke-Command, as shown in the following example: C:\PS> invoke-command -scriptblock $a -args "Other value" Other value assigned. You can run a script block that is assigned to a variable by using the call operator (&), as shown in the following example: C:\PS> &$a Parameter assigned. You can also provide a parameter to the script block, as shown in the following example: C:\PS> &$a "Other value" Other value assigned. If you want to assign the value that is created by a script block to a variable, use the call operator to run the script block directly, as shown in the following example: C:\PS> $a = &{param ($uu = "Parameter"); "$uu assigned."} C:\PS> $a Parameter assigned. For more information about the call operator, see about_Operators. SEE ALSO about_Functions about_Functions_Advanced about_Operators C:\Windows>powershell get-help about_script_internationalization -full

Microsoft Windows [Version 10.0.19045.3693]
Copyright (c) 2023 Microsoft Corporation.

ColorConsole [Version 3.7.1000] PowerShell 2.0-Export

Windows 11, 10, 8.1, 8, 7 / Server 2022, 2019, 2016











Windows-10


... Windows 10 FAQ
... Windows 10 How To


Windows 10 How To


... Windows 11 How To
... Windows 10 FAQ



PowerShell: Defines what a script block is and explains how to use script blocks in

HTTP: ... PS_Windows/en/about_script_blocks.htm
0.062
17442
Was ist, wenn der Window 7 oder Windows 8.1 Aktivierungszeitraum abgelaufen ist?
What is the right version of DesktopOK for me!
Wie finde ich die quicktextpaste.ini (zum Erstellen einer Sicherung)?
Keyboard shortcuts to start multiple programs commands (run, runx, runa, runX, runA)!
Kann ich das Windows 10 auf Windows 11 upgraden?
Ist der Drucker-Treiber bei Windows 11, 10 komplett entfernt worden?
Wie kann ich Klartext, bzw. Text ohne Formatierung aus der Zwischenablage einfügen?
Wie kann ich Klartext, bzw. Text ohne Formatierung aus der Zwischenablage einfügen?
Activate the Auto Backup Feature in QuickTextPaste!
Positioning problems with multiple screens!



(0)