Recomandări Importante
- PowerShell este un limbaj de scripting eficient, conceput pentru a simplifica și automatiza sarcinile de calcul.
- „Cmdlet-urile” reprezintă comenzi PowerShell autonome, fiecare cu o funcție specifică. Comenzile disponibile pot fi vizualizate cu ajutorul instrucțiunii „Get-Command”.
- PowerShell este compatibil cu sistemele de operare Windows, macOS și Linux.
PowerShell se remarcă ca un limbaj de scripting fiabil și ușor de utilizat, ideal pentru automatizarea sarcinilor computerului. Descoperă cum îl poți folosi pentru a crea scripturi personalizate pe sistemul tău Windows.
Introducere în Scripturile PowerShell
Pentru a începe să scrii scripturi PowerShell de bază pe Windows, este necesar să cunoști trei elemente cheie:
- Cmdlet-uri: comenzi specializate cu o singură funcție.
- Parametri: specificații care definesc modul, timpul, locul și conținutul acțiunilor executate de cmdlet-uri sau comenzi.
- Pipeline: o metodă de a transfera rezultatele unei comenzi către alte cmdlet-uri și funcții, creând un lanț de operațiuni.
Prin combinarea acestor elemente, poți dezvolta scripturi simple, dar utile pentru automatizarea sarcinilor.
Iată un exemplu ilustrativ de pipeline care combină diverse cmdlet-uri pentru a realiza o sarcină specifică:
Pentru a executa acest pipeline în PowerShell, vei introduce o comandă similară acesteia:
Get-Object Potato | Peel-Object | Chop-Object Chips| Cook-Object DeepFry `
| Place-Object Bowl
Explorarea Detaliată a Cmdlet-urilor
Similar altor limbaje de scripting, PowerShell include un set de comenzi predefinite pentru manipularea obiectelor și îndeplinirea diverselor sarcini. Aceste comenzi fundamentale sunt denumite „Cmdlet-uri”.
Cmdlet-urile (pronunțate „command-lets”) sunt comenzi concise, cu funcție unică, implementate în mediul PowerShell sub formă de fișiere cu extensia .dll. Aceste componente de cod sunt optimizate pentru performanță, executându-se rapid datorită naturii lor compilate.
PowerShell oferă mii de cmdlet-uri diverse, dar nu este necesar să le cunoști pe toate. Poți începe cu un set de cmdlet-uri de bază, progresând ulterior în funcție de necesități. Pentru a vizualiza cmdlet-urile disponibile pe sistemul tău, folosește comanda:
Get-Command
Analizând rezultatele, vei observa că acestea urmează un format de denumire de tip verb-substantiv, facilitând înțelegerea funcționalității fiecărui cmdlet.
De exemplu, „Get-Command” afișează o listă cu comenzile PowerShell disponibile. „Get-Process” prezintă procesele active în acel moment, iar „Copy-Item” este utilizată pentru a transfera fișiere într-un anumit director.
Fiecare cmdlet este însoțit de o documentație detaliată, incluzând exemple de utilizare, instrucțiuni și explicații privind funcționalitatea sa.
Pentru a obține informații suplimentare despre un anumit cmdlet și modul său de utilizare, rulează:
Get-Help <nume-cmdlet>
Parametrii PowerShell Explicați
Cmdlet-urile permit utilizarea parametrilor pentru a adapta comportamentul lor. Când execuți un cmdlet sau o funcție, poți specifica valori pentru parametri, definind astfel ce, când, unde și cum va acționa fiecare comandă PowerShell.
De exemplu, comanda „Get-Process” va afișa toate procesele active din sistem:
Dar, dacă dorești să obții informații despre un singur proces? Poți face acest lucru folosind parametri. De exemplu, pentru a afișa doar procesele Slack, utilizează parametrul „Name” împreună cu cmdletul „Get-Process”:
Get-Process -Name Slack
Rezultatul va afișa exclusiv procesele cu numele „slack”:
Unii parametri sunt „poziționali”, ceea ce înseamnă că numele lor este opțional. În acest caz, „Get-Process -Name Slack” și „Get-Process Slack” sunt echivalente.
Fiecare cmdlet acceptă diferite tipuri de parametri. Utilizează comanda „Get-Help” pentru a examina parametrii acceptați ai unui cmdlet în secțiunea „SINTAXĂ”.
Get-Help Get-Process
Vei vedea o listă cu toate modalitățile de utilizare a cmdlet-ului:
În acest caz, cmdletul „Get-Process” acceptă parametri precum „Name”, „Id”, „ComputerName”, „Module”, „FileVersionInfo”, precum și alți parametri generali. Simbolurile din listă au următoarele semnificații:
Simbol |
Denumire |
Semnificație |
---|---|---|
Gol |
Parametrul nu acceptă nicio intrare |
|
– |
Cratimă |
Indică numele parametrului |
<> |
Paranteze unghiulare |
Substituent pentru text |
[] |
Paranteze drepte |
Parametru care acceptă una sau mai multe valori |
{} |
Acolade |
Parametru care acceptă un set predefinit de valori |
Parametrii care acceptă valori indică tipul de date necesar, cum ar fi șir de caractere, număr întreg, boolean sau format DateTime. De exemplu, sintaxa:
Get-Process [[-Name] <string[]>]
Arată că parametrul „Name” poate primi una sau mai multe valori de tip șir de caractere. În schimb, sintaxa:
Get-Process -Id <int[]>
Indică faptul că parametrul „Id” acceptă una sau mai multe valori de tip număr întreg.
În exemplul precedent, parametrul „Name” a fost utilizat pentru a filtra rezultatele. Pentru o filtrare mai specifică, poți utiliza parametrul „ID”, care necesită un număr întreg, conform sintaxei sale.
Get-Process -Id 3016
Rezultatul va conține un singur proces:
Crearea unui Pipeline
În PowerShell, datele sunt gestionate ca obiecte. Pentru a construi un script, aceste obiecte sunt transferate printr-o serie de cmdlet-uri sau funcții, conectate prin simbolul pipe ( | ). Alegerea cmdlet-urilor adecvate și conectarea lor într-o secvență logică folosind pipeline este vitală pentru un script eficient.
Presupune că dezvolți un script care sortează și afișează cele cinci fișiere care ocupă cel mai mult spațiu într-un folder. Deși există metode mai avansate pentru sortarea fișierelor, următorul exemplu este ușor de înțeles:
Pentru a realiza această funcționalitate în PowerShell, vei utiliza un pipeline similar cu următorul:
Get-ChildItem -Path "C:\Director" -File | Sort-Object Length -Descending `
| Select-Object -First 5 | Format-Table Name, Length -AutoSize
Salvarea unui Pipeline ca Script PS1
După ce ai un pipeline funcțional, îl poți salva ca fișier script PS1, eliminând necesitatea de a-l reintroduce manual de fiecare dată când îl utilizezi.
Cel mai simplu mod de a crea un fișier PS1 este să copiezi scriptul într-un editor de text, precum Notepad, și să salvezi fișierul cu extensia .ps1.
Odată creat fișierul PS1, îl poți executa din PowerShell folosind comanda „./NumeScript.ps1”:
Felicitări! Ai reușit să creezi un script PowerShell PS1.
PowerShell este Disponibil și pe Linux și macOS
PowerShell se numără printre cele mai intuitive limbaje de scripting pentru începători, accesibil oricui. Deși inițial a fost limitat la Windows, actuala versiune de PowerShell este acum compatibilă și cu macOS, precum și cu multe distribuții Linux! Această evoluție face PowerShell și mai atractiv, oferind posibilitatea de a aplica cunoștințele acumulate pe Windows și pe alte sisteme de operare.