PowerShell Logo Small

Invoke-Expression



This is the built-in help made by Microsoft for the command 'Invoke-Expression', in PowerShell version 2 - as retrieved from Windows version 'Microsoft® Windows Vista™ Ultimate ' PowerShell help files on 2016-06-23.

For PowerShell version 3 and up, where you have Update-Help, this command was run just before creating the web pages from the help files.

SYNOPSIS

Runs commands or expressions on the local computer.

SYNTAX


Invoke-Expression [-Command] <string> [<CommonParameters>]



Search powershellhelp.space

DESCRIPTION


The Invoke-Expression cmdlet evaluates or runs a specified string as a command and returns the results of the expression or command. Without Invo
ke-Expression, a string submitted at the command line would be returned (echoed) unchanged.



<

RELATED LINKS

Online version: http://go.microsoft.com/fwlink/?LinkID=113343
Invoke-Command

REMARKS

<

Examples


-------------------------- EXAMPLE 1 --------------------------

C:\PS>$command = "Get-Process"

C:\PS> $command
Get-Process


C:\PS> invoke-expression $command

Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName
------- ------ ----- ----- ----- ------ -- -----------
296 4 1572 1956 20 0.53 1348 AdtAgent
270 6 1328 800 34 0.06 2396 alg
67 2 620 484 20 0.22 716 ati2evxx
1060 15 12904 11840 74 11.48 892 CcmExec
1400 33 25280 37544 223 38.44 2564 communicator
...



Description
-----------
This example demonstrates the use of Invoke-Expression to evaluate an expression. Without Invoke-Expression, the expression is printed, but not e
valuated.

The first command assigns a value of "Get-Process" (a string) to the $command variable.

The second command shows the effect of typing the variable name at the command line. Windows PowerShell echoes the string.

The third command uses Invoke-Expression to evaluate the string.








-------------------------- EXAMPLE 2 --------------------------

C:\PS>invoke-expression -command "C:\ps-test\testscript.ps1"

C:\PS> "C:\ps-test\testscript.ps1" | invoke-expression



Description
-----------
These commands use Invoke-Expression to run a script, TestScript.ps1, on the local computer. The two commands are equivalent. The first uses the
Command parameter to specify the command to run. The second uses a pipeline operator (|) to send the command string to Invoke-Expression.








-------------------------- EXAMPLE 3 --------------------------

C:\PS>$cmd = 'get-process | where {$_.cpu -gt 1000}'

C:\PS> iex $command



Description
-----------
This example runs a command string that is saved in the $cmd variable.

The command string is enclosed in single quotation marks because it includes a variable, $_, which represents the current object. If it were encl
osed in double quotation marks, the $_ variable would be replaced by its value before it was saved in the $command string.








-------------------------- EXAMPLE 4 --------------------------

C:\PS>$cmdlet_name = "get-eventlog"

C:\PS> $example_number = 1

C:\PS> $example_code = (get-help $cmdlet_name).examples.example[($example_number-1)].code

C:\PS> invoke-expression $example_code



Description
-----------
This command retrieves and runs the first example in the Get-EventLog cmdlet help topic.

To run an example of a different cmdlet, change the value of the $cmdlet_name variable to the name of the cmdlet. And, change the $example_number
variable to the example number you want to run. The command will fail if the example number is not valid.