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


Invoke-Expression

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

Syntax

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. A parancssorban elküldött sztring nélkül Invoke-Expressiona rendszer változatlanul adja vissza (visszhangozza) a karakterláncot.

A kifejezések kiértékelése és futtatása az aktuális hatókörben történik. További információ: about_Scopes.

Figyelemfelhívás

A parancsmag szkriptekben való használatakor Invoke-Expression ésszerű óvintézkedéseket kell tenni. Invoke-Expression A felhasználó által beírt parancs futtatásakor 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 egy kifejezés kiértékelésének Invoke-Expression használatát mutatja be. E nélkül Invoke-Expressiona kifejezés ki lesz nyomtatva, de nincs kiértékelve.

Az első parancs egy (sztring) értéket Get-Process 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 a sztring kiértékelésére használja Invoke-Expression .

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 egy testScript.ps1 nevű szkript futtatására használhatók Invoke-Expression a helyi számítógépen. A két parancs egyenértékű. Az első a Parancs paraméter használatával adja meg a futtatandó parancsot. A második egy folyamatkezelővel (|) 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, a $Command változóba mentett parancssztringet futtat.

A parancssztring egyetlen idézőjelbe 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 $_ változóban $Command 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 változót $Example_number a futtatni kívánt példaszámra. A parancs meghiúsul, ha a példaszám érvénytelen.

Feljegyzé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 parancsparaméter megadása kötelező.

Típus:String
Position:0
Alapértelmezett érték:None
Kötelező:True
Folyamatbemenet elfogadása:True
Helyettesítő karakterek elfogadása:False

Bevitelek

String

A parancsmagra meghívandó kifejezésnek egy sztringet is beszúrhat. Használja az $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 az $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 Windows PowerShell a következő aliasokat Invoke-Expressiontartalmazza:

  • 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ó: about_Operators.