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

Sadržaj:

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

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

Video: Geek School: Učenje PowerShell varijabli, ulaz i izlaz
Video: CS50 2015 - Week 6 - YouTube 2024, Travanj
Anonim
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.
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 variable:

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

Remove-Item Variable: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 | Sort CPU -Descending | select -First 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.
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.

Image
Image

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]$Number = 5 [int]$Number = ‘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 = Read-Host –Prompt ‘Enter your first name’

Što god ste unijeli, tada će se spremiti u varijablu.
Što god ste unijeli, tada će se spremiti u varijablu.
Izlaz za pisanje jednako je jednostavan s cmdletom Write-Output.
Izlaz za pisanje jednako je jednostavan s cmdletom Write-Output.

Write-Output “How-To Geek Rocks!”

Preporučeni: