27Jul
Pri prechode od jednoduchého spustenia príkazov a presunutí do písania plných fúkaných skriptov budete potrebovať dočasné miesto na ukladanie dát. Toto je miesto, kde prechádzajú premenné.
Uistite sa, že ste si prečítali predchádzajúce články v sérii:
- Naučte sa automatizovať systém Windows s PowerShell
- Naučiť sa používať kódy v PowerShell
- Učíme sa používať objekty vo formáte PowerShell
- Učíme sa formátovaním, filtrovaním a porovnávanímPowerShell
- Naučte sa používať Remoting v PowerShell
- Použitie PowerShell na získanie informácií o počítači
- Práca s kolekciami v PowerShell
A zostaňte naladení na zvyšok série celý týždeň.
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, ktorú väčšina ľudí zrejme kladie, je, prečo sme pred názvom premenných vložili znak dolára a to je vlastne 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.
premenná gci:
Znamená to, že môžete kedykoľvek vymazať premennú z shell:
Odstránenie položky premennej: \ 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 porozumenie je treba pamätať na to, ž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-ProcessZoradiť procesorvyberte - Prvé 3
Premenná CPUHogs teraz obsahuje tri bežiace procesy, ktoré používajú najviac CPU.
Keď máte premennú obsahujúcu zbierku objektov, musíte si byť vedomí niektorých vecí.Napríklad, volanie metódy na premennej spôsobí, že bude vyzvaný na každý objekt v kolekcii.
$ 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 sa dostanete prvý objekt v zbierke.
Nenechajte sa chytiť!Premenné
v systéme PowerShell sú v predvolenom nastavení slabo zadané, čo znamená, že môžu obsahovať ľubovoľné dáta, zdá sa, že sa stále nachádzajú nové verzie 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? V prvom príklade je prvým operandom celé číslo $ a, takže PowerShell si myslí, že si myslí, žesnažíte sa robiť matematiku a preto sa pokúša previesť aj iné operandy 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 spojí ich. Pokročilejšie scripty zabraňujú tomuto druhu gotchy tým, že prenesú premennú na typ, ktorý očakávajú.
[int] $ Number = 5
[int] $ Number = '5'
Vyššie uvedené bude mať za následok premennú Number obsahujúcu celočíselný objekt s hodnotou 5.
Vstup a výstup
Pretože PowerShell má automatizovať veci, budete chcieť, aby ste sa vyhli informáciám používateľov, kedykoľvek je to možné.S tým povedal, že tam budú časy, kedy sa nemôžete vyhnúť, a pre tie časy máme čítačku Read-Host. Použitie je veľmi jednoduché:
$ FirstName = Read-Host -Prompt 'Zadajte svoje krstné meno'
Čokoľvek zadáte, bude uložené v premennej.
Výstup zápisu je rovnako jednoduchý aj pri cmdletí Write-Output.
Write-Out "Ako na to Geek Rocks!"
Pridajte sa k nám zajtra, kde sa viaže všetko, čo sme sa naučili spolu!