Megosztás a következőn keresztül:


Invoke-Expression

Parancsokat vagy kifejezéseket futtat a helyi számítógépen.

Syntax

Default (Alapértelmezett)

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

Description

A Invoke-Expression parancsmag egy megadott sztringet kiértékel vagy futtat parancsként, és visszaadja a kifejezés vagy parancs eredményeit. Invoke-Expressionnélkül a parancssorban elküldött sztring változatlanul lesz visszaadva (visszhangzik).

A kifejezések kiértékelése és futtatása az aktuális hatókörben történik. További információ található a about_Scopesrészben.

Figyelmeztetés

A Invoke-Expression parancsmag szkriptekben való használatakor ésszerű óvintézkedéseket kell tenni. Ha Invoke-Expression használ a felhasználó által beírt parancs futtatásához, ellenőrizze, hogy a parancs biztonságosan futtatható-e a futtatás előtt. Általában célszerű előre definiált beviteli lehetőségekkel megtervezni a szkriptet a szabadkéményes bevitel engedélyezése helyett.

Példák

1. példa: Kifejezés kiértékelése

$Command = "Get-Process"
$Command
Get-Process
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
...

Ez a példa bemutatja, hogy a Invoke-Expression használatával kiértékelhet egy kifejezést. Invoke-Expressionnélkül a kifejezés ki lesz nyomtatva, de nincs kiértékelve.

Az első parancs egy Get-Process (sztring) értéket rendel a $Command változóhoz.

A második parancs a változónév parancssorba való beírásának hatását mutatja. A PowerShell a sztringet visszhangozza.

A harmadik parancs Invoke-Expression használatával értékeli ki a sztringet.

2. példa: Szkript futtatása a helyi számítógépen

Invoke-Expression -Command "C:\ps-test\testscript.ps1"
"C:\ps-test\testscript.ps1" | Invoke-Expression

Ezek a parancsok Invoke-Expression használnak egy szkript futtatásához, TestScript.ps1a helyi számítógépen. A két parancs egyenértékű. Az első a Command paramétert használja a futtatandó parancs megadásához. A második egy folyamatkezelő (|) használatával küldi el a parancssztringet Invoke-Expression.

3. példa: Parancs futtatása változóban

$Command = 'Get-Process | where {$_.CPU -gt 1000}'
Invoke-Expression $Command

Ez a példa egy parancssztringet futtat, amely a $Command változóba van mentve.

A parancssztring egyetlen idézőjelek közé van foglalva, mert tartalmaz egy változót, $_, amely az aktuális objektumot jelöli. Ha idézőjelek közé lenne zárva, a $_ változót a $Command változóba való mentés előtt az értéke váltaná fel.

4. példa: Példa parancsmag lekérése és futtatása

$Cmdlet_name = "Get-ComputerInfo"
$Example_number = 1
$Example_code = (Get-Help $Cmdlet_name).examples.example[($Example_number-1)].code
Invoke-Expression $Example_code

Ez a parancs lekéri és futtatja az első példát a Get-EventLog parancsmag súgótémakörében.

Egy másik parancsmag példájának futtatásához módosítsa a $Cmdlet_name változó értékét a parancsmag nevére. Módosítsa a $Example_number változót a futtatni kívánt példaszámra. A parancs meghiúsul, ha a példaszám érvénytelen.

Megjegyzés:

Ha a súgófájl példakódjának kimenete szerepel a példában, a PowerShell megpróbálja futtatni a kimenetet a kóddal együtt, és hibaüzenet jelenik meg.

Paraméterek

-Command

Megadja a futtatni kívánt parancsot vagy kifejezést. Írja be a parancsot vagy kifejezést, vagy adjon meg egy változót, amely tartalmazza a parancsot vagy kifejezést. A command paraméterre van szükség.

Paramétertulajdonságok

Típus:String
Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

(All)
Position:0
Kötelező:True
Folyamatból származó érték:True
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

CommonParameters

Ez a parancsmag a következő gyakori paramétereket támogatja: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction és -WarningVariable. További információért lásd about_CommonParameters.

Bevitelek

String

A parancsmagra meghívandó kifejezésnek egy sztringet is beszúrhat. Használja a $input automatikus változót a parancs bemeneti objektumainak megjelenítéséhez.

PSObject

A parancsmagra meghívandó kifejezésnek megfelelő objektumot csövezhet. Használja a $input automatikus változót a parancs bemeneti objektumainak megjelenítéséhez.

Kimenetek

None

Ez a parancsmag nem ad vissza saját kimenetet, de a meghívott parancs kimenetet adhat vissza.

Jegyzetek

A PowerShell a következő aliasokat tartalmazza Invoke-Expression:

  • Minden platform:
    • iex

A legtöbb esetben a PowerShell hívási operátorával hív meg kifejezéseket, és ugyanazokat az eredményeket éri el. A híváskezelő biztonságosabb módszer. További információért lásd: about_Operators.