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.