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 parancsként kiértékeli vagy futtatja a megadott sztringet, és visszaadja a kifejezés vagy parancs eredményeit. Invoke-Expression nélkül a parancssorban elküldött sztring változatlanul visszaadódik (visszhangzik).

Példák

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

PS C:\> $Command = "Get-Process"
PS C:\> $Command
Get-Process
PS C:\> 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 , hogyan lehet kiértékelni egy kifejezést. Invoke-Expression nélkül a kifejezés kinyomtatásra kerül, de nem kerül kiértékelésre.

Az első parancs 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 Windows PowerShell a sztringet visszhangozza.

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

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

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

Ezek a parancsok a Invoke-Expression használatával futtatnak egy szkriptet (TestScript.ps1) a 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 folyamatoperátorral (|) küldi el a parancssztringet a Invoke-Expression .

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

PS C:\> $Command = 'Get-Process | where {$_.cpu -gt 1000}'
PS C:\> 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

PS C:\> $Cmdlet_name = "Get-EventLog"
PS C:\> $Example_number = 1
PS C:\> $Example_code = (Get-Help $Cmdlet_name).examples.example[($Example_number-1)].code
PS C:\> 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. És módosítsa a $Example_szám változót a futtatni kívánt példaszámra. A parancs sikertelen lesz, ha a példaszám érvénytelen.

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

System.String or PSObject

A parancsot képviselő objektumot átirányíthatja a Invoke-Expression fájlba. Az automatikus változó $Input használatával jelölheti a parancs bemeneti objektumait.

Kimenetek

PSObject

A meghívott parancs által generált kimenetet adja vissza (a Command paraméter értékét).

Jegyzetek

  • A kifejezés olyan utasítás, amely kiértékelhető, és eredményt hoz létre, például Windows PowerShell-parancsot.

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