If-Koubou

Geek School: Učenje PowerShell varijabli, ulaz i izlaz

Geek School: Učenje PowerShell varijabli, ulaz i izlaz (Kako da)

Dok se odmaknemo od jednostavnog pokretanja naredbi i premještanja u pisanje punih puknutih skripti, trebat će vam privremeno mjesto za spremanje podataka. Tu dolaze varijable.

Obavezno pročitajte prethodne članke serije:

  • Saznajte kako automatizirati sustav Windows pomoću programa PowerShell
  • Učenje pomoću Cmdletsa u PowerShellu
  • Učenje kako koristiti objekte u PowerShellu
  • Oblikovanje učenja, filtriranje i uspoređivanje u PowerShellu
  • Saznajte kako koristiti Remoting u PowerShellu
  • Upotreba programa PowerShell za dobivanje informacija o računalu
  • Rad s zbirkama u PowerShellu

I ostanite u tijeku cijele serije cijeli tjedan.

Varijable

Većina programskih jezika dopušta korištenje varijabli, koje su jednostavno spremnici koji imaju vrijednosti. U PowerShellu imamo i varijable i vrlo su jednostavne za upotrebu. Evo kako stvoriti varijablu pod nazivom "FirstName" i dati mu vrijednost "Taylor".

$ FirstName = "Taylor"

Prvo što većina ljudi čini da je pitanje zašto smo stavili dolar znak ispred imena varijable, i to je zapravo vrlo dobro pitanje. Stvarno, znak dolara samo je mali nagovještaj ljuske da želimo pristupiti sadržaju varijable (mislim što je unutar kontejnera), a ne sam kontejner. U PowerShell-u, nazivi varijabli ne uključuju znak dolara, što znači da je u gornjem primjeru naziv varijable zapravo "FirstName".

U PowerShellu možete vidjeti sve varijable koje ste stvorili u varijabli PSDrive.

gci varijabla:

Što znači da možete izbrisati varijablu iz ljuske u bilo kojem trenutku:

Ukloni varijablu stavke: \ FirstName

Varijable ne moraju sadržavati niti jedan objekt; možete jednostavno pohraniti više objekata u varijablu. Na primjer, ako želite pohraniti popis pokretnih procesa u varijabli, možete je jednostavno dodijeliti izlazu Get-Processa.

$ Proc = Get-Process

Izigrati da to razumijemo je da zapamtimo da desna strana znaka jednakosti uvijek prvo procjenjuje. To znači da možete imati cijeli cjevovod na desnoj strani ako želite.

$ CPUHogs = Get-Process | Poredaj CPU - opadajući | odaberite - Prva 3

Varijabla CPUHogsa sada će sadržavati tri procesa koji se izvode pomoću najviše CPU-a.

Kada imate varijablu koja drži zbirku objekata, postoje neke stvari koje trebaju biti svjesne. Na primjer, pozivanje metode na varijablu uzrokovat će da se poziva na svaki objekt u zbirci.

$ CPUHogs.Kill ()

Što bi ubila sva tri procesa u zbirci. Ako želite pristupiti jednom objektu u varijabli, trebate ga tretirati kao niz.

$ CPUHogs [0]

To će vam dati prvi objekt u zbirci.

Nemojte se uhvatiti!

Varijable u PowerShellu slabo su tipizirane prema zadanom značenju mogu sadržavati bilo kakve podatke, to izgleda kao da ulove nove ljude u PowerShell cijelo vrijeme!

$ a = 10

$ b = '20'

Dakle, imamo dvije varijable, jedan sadrži niz, a drugi cijeli broj. Pa što će se dogoditi ako ih dodate? To zapravo ovisi o tome kojim ćete redoslijedom dodati.

$ a + $ b = 30

Dok

$ b + $ a = 2010

U prvom primjeru, prvi operand je cijeli broj, $, pa PowerShell misli da misli da pokušavate napraviti matematiku i stoga pokušavate pretvoriti i druge operande u cijele brojeve. Međutim, u drugom primjeru prvi operand je niz, tako da PowerShell samo pretvara ostatak operanda na žice i povezuje ih. Napredniji scenaristi spriječavaju ovu vrstu gotke tako što će varijablu baciti na vrstu koju očekuju.

[int] $ Broj = 5
[int] $ Broj = '5'

Gore će rezultirati i varijabla broja koja sadrži cijeli objekt s vrijednosti od 5.

Ulaz i izlaz

Budući da je PowerShell namijenjen automatiziranju stvari, željet ćete izbjeći da korisnike potiču kad god je to moguće. Uz to, bit će vremena kad ga ne možete izbjeći, a za to vrijeme imamo cmdlet Read-Host. Korištenje je stvarno jednostavan:

$ FirstName = Čitač-Host -Prompt 'Unesite svoje ime'

Što god ste unijeli, tada će se spremiti u varijablu.

Izlaz za pisanje jednako je jednostavan s cmdletom Write-Output.

Write-Output "Kako do Geek Rocksa!"

Pridružite nam se sutra gdje vezujemo sve što smo naučili zajedno!