Tartalomjegyzék
Kulcs elvitelek
- A PowerShell egy szkriptnyelv, amely segíthet automatizálni a számítógépes feladatokat.
- A parancsmagok egyfunkciós Powershell-parancsok. Az elérhető parancsokat a „Get-Command” segítségével tekintheti meg.
- A PowerShell Windows, macOS és Linux rendszereken érhető el.
A PowerShell egy szkriptnyelv, amely segítségével egyszerűen és megbízhatóan automatizálhatja a számítógépes feladatokat. Ismerje meg, hogyan használhatja fel a szkriptek létrehozásához Windows PC-je számára.
PowerShell Scripting áttekintése
Ahhoz, hogy egyszerű PowerShell-szkripteket készítsen Windows rendszeren, három dolgot kell tudnia:
- Parancsmagok: egyfunkciós parancsok.
- Paraméterek: adja meg a parancsmagok/parancsok mit, mikor, hol és hogyan.
- Pipeline: átveszi a parancsmag kimenetét és paramétereit, és összekapcsolja más parancsmagokkal és funkciókkal.
Mindhárom kombinálásával egyszerű szkripteket készíthet a feladatok automatizálásához.
Íme egy példafolyamat, amely bemutatja, hogyan kombinálhat több parancsmagot egy feladat végrehajtásához:
Ennek a folyamatnak a PowerShellben való futtatásához valami ehhez hasonló parancsot kell használnia:
Get-Object Potato | Peel-Object | Chop-Object Chips| Cook-Object DeepFry `
| Place-Object Bowl
A parancsmagok részletesen
Mint minden szkriptnyelv, a PowerShell előre beépített parancsokkal rendelkezik az objektumok manipulálására és különféle feladatok végrehajtására. Ezeket az alapvető parancsokat a PowerShellben parancsmagoknak nevezzük.
A parancsmagok (ejtsd: parancs-lets) kicsi, egyfunkciós parancsok, amelyeket a PowerShell környezetben használnak a .dll kiterjesztéssel. Ezek könnyű kóddarabok, amelyek lefordított jellegük miatt gyorsabban futnak, mint a függvények.
A PowerShellben több ezer parancsmag érhető el. Nem kell mindegyiket megtanulnia. Kezdje azzal, hogy megtanul néhány alapvető PowerShell-parancsmagot, majd folytassa a tanulást a szkriptelési út során. A számítógépére már telepített parancsmagok megtekintéséhez futtassa a következőt:
Get-Command
Ha átnézi az eredményeket, észre fogja venni, hogy az ige-főnév elnevezési konvenciót követik. Ez megkönnyíti annak megértését, hogy egy adott parancsmag mit csinál.
Például a Get-Command felsorolja a PowerShellben elérhető parancsokat. A Get-Process lekéri az éppen aktív folyamatokat, a Copy-Item pedig egy vagy több fájlt egy adott könyvtárba másol.
A parancsmagok kiterjedt dokumentációt is tartalmaznak, amely példákat, használati utasításokat és működésük magyarázatát tartalmazza.
Ha többet szeretne megtudni egy adott parancsmagról és annak használatáról, futtassa:
Get-Help <name-of-cmdlet>
A PowerShell-paraméterek magyarázata
A parancsmagok paramétereket fogadhatnak el viselkedésük megváltoztatásához. Parancsmag vagy függvény futtatásakor paraméterértékeket adhat meg annak meghatározásához, hogy az egyes PowerShell-parancsok mit, mikor, hol és hogyan fussanak.
Például a Get-Process lekéri és felsorolja az összes aktív folyamatot az operációs rendszeren belül:
De mi van akkor, ha csak egy konkrét folyamatot szeretne elérni? Ezt paraméterek segítségével teheti meg. Például az összes Slack-folyamat lekéréséhez használja a Name paramétert a Get-Process parancsmaggal:
Get-Process -Name Slack
Ezután csak a „slack” nevű folyamatokat fogja látni:
Néhány paraméter „pozíciós”, ami azt jelenti, hogy a nevük nem kötelező. Ebben az esetben a Get-Process -Name Slack és a Get-Process Slack ugyanezt teszi.
Minden parancsmag különböző típusú paramétereket fogad el. A Get-Help paranccsal tekintheti meg a parancsmagok elfogadott paramétereit a SZINTAXIS részben.
Get-Help Get-Process
Megjelenik egy lista az összes lehetséges módról, amellyel az adott parancsmagot futtathatja:
Ebben az esetben a Get-Process parancsmag olyan paramétereket fogad el, mint a Név, Id, Számítógépnév, Modul, FileVersionInfo és más általános paraméterek. Az itt található szimbólumok a következőket jelentik:
Szimbólum |
Név |
Jelentése |
---|---|---|
Üres |
A paraméter nem fogad bevitelt |
|
– |
Kötőjel |
Paraméter nevét jelzi |
<> |
Szögletes konzolok |
Helyőrző szöveghez |
[] |
zárójelek |
Paraméter, amely egy vagy több értéket fogadhat el |
{} |
Kapcsos zárójel |
A paraméter értékkészletet fogad el |
A bemeneteket elfogadó paraméterek jelzik a szükséges adatok típusát, például karakterláncot, egész számot, logikai értéket vagy DateTime. Például ez:
Get-Process [[-Name] <string[]>]
Azt jelenti, hogy a Name paraméter egy vagy több karakterlánc értéket fogad el, miközben ez:
Get-Process -Id <int[]>
Azt jelenti, hogy az Id paraméter egy vagy több egész értéket fogad el.
A korábbi Get-Process példa a Name paramétert használta az eredmények szűkítésére. Ha azonban egy még specifikusabb folyamatra szeretné leszűkíteni, használhatja az ID paramétert, amelyhez egy egész számra van szükség, ahogy az a szintaxisában szerepel.
Get-Process -Id 3016
Ezután csak egy folyamatot kell látnia a listában:
Csővezeték létrehozása
A PowerShell minden adatot objektumként kezel. A szkript felépítéséhez ezek az objektumok egy sor parancsmagon vagy függvényen keresztül futnak, amelyeket egy csőszimbólum ( | ) kapcsol össze. A megfelelő parancsmagok kiválasztása és logikai sorrendben történő összekapcsolása a folyamat segítségével kulcsfontosságú a hatékony szkripthez.
Tegyük fel, hogy egy szkriptet hoz létre az öt fájl rendezésére és megjelenítésére, amelyek a legtöbb tárhelyet foglalják egy mappában. Vannak robusztusabb módszerek is a fájlrendezési szkript létrehozására, de a következő egysoros szöveg könnyen érthető:
Ehhez a PowerShellben használjon egy csővezetéket, amely valahogy így néz ki:
Get-ChildItem -Path "C:\Directory" -File | Sort-Object Length -Descending `
| Select-Object -First 5 | Format-Table Name, Length -AutoSize
A Pipeline mentése PS1-szkriptként
Most, hogy van egy működő folyamatunk, elmentheti PS1 szkriptfájlként, így nem kell minden alkalommal begépelnie, amikor használja.
A PS1-fájl létrehozásának legegyszerűbb módja, ha beilleszti a szkriptet a Jegyzettömbbe, és menti a fájlt .ps1 kiterjesztéssel.
Miután létrehozta a PS1 fájlt, használhatja a PowerShellben a ./ScriptName.ps1 futtatásával:
Gratulálunk! Most már létrehozhat PowerShell PS1 szkripteket.
A PowerShell Linuxon és macOS-en is elérhető
A PowerShell az egyik legjobb kezdő szkriptnyelv, amelyet bárki megtanulhat. Bár a PowerShell korábban csak Windowsra korlátozódott, a PowerShell frissített verziója macOS-en és számos Linux-disztribúción is elérhető! Ez még vonzóbbá teszi a PowerShellt, mivel átviheti tudását a Windows rendszerből más operációs rendszerekbe.