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.