Mi az a Windows PowerShell Scripting?

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.

  Hogyan ellenőrizheti, hogy melyik Windows-verziót futtatja

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:

  A sárga árnyalat javítása a Windows laptop képernyőjén

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:

  Hogyan lehet törölni a Skype-beszélgetést egyetlen névjegyről a Windows rendszerben

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.