Nezabudnite si prečítať predchádzajúce články v sérii:
- Naučte sa ako automatizovať systém Windows pomocou nástroja PowerShell
- Naučiť sa používať Cmdlets v PowerShell
- Učenie ako používať objekty v PowerShell
- Formátovanie učenia, filtrovanie a porovnávanie v systéme PowerShell
- Naučte sa používať Remoting v PowerShell
- Použitie nástroja PowerShell na získanie informácií o počítači
- Práca s kolekciami v systéme PowerShell
A zostávajte celú týždeň na zvyšok série.
premenné
Väčšina programovacích jazykov umožňuje používať premenné, ktoré sú jednoducho kontajnery, ktoré obsahujú hodnoty. V systéme PowerShell máme aj premenné a sú veľmi jednoduché. Tu je postup, ako vytvoriť premennú s názvom "FirstName" a dať jej hodnotu "Taylor".
$FirstName = “Taylor”
Prvá vec, z ktorej sa väčšina ľudí zrejme pýta, je dôvod, prečo sme pred názov premenných vložili znak dolára a to je v skutočnosti veľmi dobrá otázka. Naozaj, znak dolára je len malý náznak pre shell, že chceme pristupovať k obsahu premennej (myslieť si, čo je vnútri kontajnera), a nie samotný kontajner. V menách PowerShell názvy premenných nezahŕňajú znak dolára, čo znamená, že vo vyššie uvedenom príklade je názov premenných skutočne "FirstName".
V programe PowerShell môžete vidieť všetky premenné, ktoré ste vytvorili v premennej PSDrive.
gci variable:
Remove-Item Variable:FirstName
Premenné nemusia obsahovať ani jeden objekt; môžete rovnako ľahko uložiť viaceré objekty do premennej. Napríklad, ak ste chceli uložiť zoznam bežiacich procesov do premennej, stačí mu priradiť výstup Get-Process.
$Proc = Get-Process
Trik na to, aby ste pochopili toto, je mať na pamäti, že pravá strana označenia rovnosti je vždy najprv hodnotená. To znamená, že môžete mať na pravej strane celý potrubie, ak chcete.
$CPUHogs = Get-Process | Sort CPU -Descending | select -First 3
Premenná CPUHogs bude teraz obsahovať tri bežiace procesy používajúce väčšinu procesorov.
$CPUHogs.Kill()
Ktoré by v kolekcii zabili všetky tri procesy. Ak chcete pristupovať k jednému objektu v premennej, musíte ho považovať za pole.
$CPUHogs[0]
Tým urobíte prvý objekt v zbierke.
Nenechajte sa chytiť!
Premenné v systéme PowerShell sú v predvolenom nastavení slabo napísané, čo znamená, že môžu obsahovať ľubovoľný druh údajov, zdá sa, že sa to dá stále viac prichádzať do PowerShell!
$a = 10
$b = ‘20’
Takže máme dve premenné, jedna obsahuje reťazec a druhé celé číslo. Takže čo sa stane, ak ich pridáte? Závisí to od toho, v akom poradí ich pridáte.
$a + $b = 30
zatiaľ čo
$b + $a = 2010
V prvom príklade je prvý operand celé číslo $ a, takže PowerShell si myslí, že si myslíte, že sa pokúšate robiť matematické skúšky, a preto sa pokúša previesť aj ostatných operandov na celé čísla. Avšak v druhom príklade je prvý operand reťazec, takže PowerShell konvertuje zvyšok operandov na reťazce a zlučuje ich. Pokročilejšie scripty zabraňujú tomuto typu chlapčeka prevzatím premennej na typ, ktorý očakáva.
[int]$Number = 5 [int]$Number = ‘5’
Vyššie uvedené bude mať za následok premennú Počet s celočíselným objektom s hodnotou 5.
Vstup a výstup
Pretože PowerShell je určený na automatizáciu vecí, budete sa chcieť vyhnúť tomu, aby ste používateľom viedli informácie vždy, keď je to možné. S tým povedal, že tam budú časy, kedy sa nemôžete vyhnúť, a za tie časy máme cmdlet Read-Host. Použitie je veľmi jednoduché:
$FirstName = Read-Host –Prompt ‘Enter your first name’
Write-Output “How-To Geek Rocks!”