27Jul

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

click fraud protection

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

Obavezno pročitajte prethodne članke u seriji:

  • Saznajte kako automatizirati sustav Windows pomoću PowerShell
  • Učenje pomoću Cmdletsa u PowerShellu
  • Učenje Kako koristiti objekte u PowerShell
  • Učenje oblikovanja, filtriranja i usporedbePowerShell
  • Saznajte kako koristiti remont u PowerShell
  • Korištenje programa PowerShell za dobivanje informacija o računalu
  • Rad s zbirkama u PowerShell

I ostati 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"

Prva stvar koju mnogi ljudi pitaju je zašto stavljamo znak dolara ispred naziva varijabli, 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".

instagram viewer

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-varijabla 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

Trik za razumijevanje ovo je zapamtiti 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 -Prve 3

Varijabla CPUHogs 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()

Koji bi ubio 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 koje mogu sadržavati bilo kakve podatke, to čini se 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 u stvari ovisi o tome kojim redoslijedom ih dodate.

$ a + $ b = 30

Dok

$ b + $ a = 2010

U prvom primjeru, prvi operand je cijeli broj $ a tako PowerShell misli da topokušavate napraviti matematiku i stoga pokušavate pretvoriti bilo koji drugi operand 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 getge tako što će varijablu baciti na tip koji očekuju.
[int] $ Broj = 5
Gore će rezultirati Varijabla broja koja sadrži cijeli objekt s vrijednošću 5.

Ulaz i izlaz

Budući da je PowerShell namijenjen automatiziranju stvari, željet ćete izbjeći poticanje korisnicima da dobiju informacije gdje 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 = Pročitajte-Host -Prompt 'Upišite svoje ime'

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

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

Write-Output "How-To Geek Rocks!"

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