27Jul

Geek Iskola: A PowerShell változók, a bemenet és a kimenetek elsajátítása

Ahogy elmozdulunk a parancsok egyszerű parancsfuttatásától és teljes forgatókönyvek készítéséhez, ideiglenes helyre lesz szükség az adatok tárolásához. Ez az a hely, ahol változók jönnek be.

Olvassa el a korábbi cikkeket a sorozatban:

  • Ismerje meg a Windows automatizálását a PowerShell programmal
  • A Cmdletek használata a PowerShell-ben
  • A PowerShell objektumok objektumainak tanulása
  • A tanulás formázása, szűrése és összehasonlításaPowerShell
  • Ismerje meg a távtelepítés használatát a PowerShell-ben
  • A PowerShell használata a számítógépes információk beszerzéséhez
  • A PowerShell

gyűjteményeinek kezelése Tartsa magát a sorozat többi részéhez egész héten.

változók

A legtöbb programozási nyelv lehetővé teszi a változók használatát, amelyek egyszerűen olyan tartályok, amelyek értékeket tartalmaznak. A PowerShell-ben is vannak változók, és nagyon könnyen használhatóak. Itt van egy "FirstName" nevű változó létrehozása, és adja meg a "Taylor" értéket.

$ FirstName = "Taylor"

Az első dolog, amit a legtöbb ember megkérdez, miért teszünk dollárjelet a változók neve előtt, és ez valójában nagyon jó kérdés. Tényleg, a dollár jel csak egy kis tipp a shell számára, hogy hozzáférhetünk a változó tartalmához( gondoljunk arra, mi van a tartályban), és nem magának az edénynek. A PowerShell-ben a változók nevei nem tartalmazzák a dollárjelet, ami azt jelenti, hogy a fenti példában a változók neve valójában "FirstName".

A PowerShell programban megtekintheti a PSDrive változóban létrehozott összes változót.

gci változó:

Ami azt jelenti, hogy bármikor törölhet egy változót a shellből:

Eltávolítás-elem változó: \ FirstName

A változóknak nem kell egyetlen objektumot sem tartalmazniuk;ugyanolyan egyszerűen tárolhat több objektumot egy változóban. Ha például egy változóban szeretné tárolni a futó folyamatok listáját, csak a Get-Process kimenetét rendelheti hozzá.

$ Proc = Get-Process

Ennek a megértésnek a trükkje, hogy emlékezzen arra, hogy az egyenlő jel jobb oldalát mindig először értékeljük. Ez azt jelenti, hogy egy teljes csővezeték a jobb oldalon lehet, ha akarod.

$ CPUHogs = Get-Process |Sort CPU-csökkenő |select -First 3

A CPUHogs változó mostantól a legfeljebb három CPU-t használó futó folyamatokat tartalmazza.

Ha van olyan változó, amely egy objektumgyűjteményt tart, van néhány dolog, amit tisztában kell lenned. Például, ha egy változót használunk egy metódusra, a gyűjtemény minden egyes objektumát meghívjuk.

$ CPUHogs. Kill()

Ami mindhárom eljárást megölné a gyűjteményben. Ha egy objektumot szeretne elérni a változóban, akkor úgy kell kezelnie, mint egy tömböt.

$ CPUHogs [0]

Ehhez a gyűjtemény első objektumát adja meg.

Ne légy elkapva! Az

A PowerShell változói gyengén vannak beírva alapértelmezés szerint, bármilyen adatot tartalmazhatnak, ez úgy tűnik, hogy az új felhasználókat mindenkor elkapja a PowerShell-re!

$ a = 10

$ b = '20'

Így van két változó, az egyik tartalmaz egy karakterláncot, a másik egy egész számot. Mi történik akkor, ha hozzáadja őket? Valójában attól függ, hogy melyik sorrendbe adja hozzá őket

$ a + $ b = 30

Míg

$ b + $ a = 2010

Az első példában az első operandus egy egész szám, $ a, így a PowerShell úgy gondolja, hogymegpróbálsz matematikát csinálni, ezért megpróbál más operandusokat is egész számokra konvertálni. A második példában azonban az első operandus egy string, így a PowerShell csak átalakítja a többi operandust a karakterláncokra és összekapcsolja azokat. A fejlettebb szkriptek megakadályozzák ezt a fajta fogalmat, ha a változót a kívánt típushoz választják.
[int] $ szám = 5
[int] $ szám = '5'

A fenti eredmények mindegyike egy számértéket tartalmazó, 5-ös értékű egész számot tartalmazó számváltozót eredményez.

bemenet és kimenet

Mivel a PowerShell célja a dolgok automatizálása, ha csak lehetséges, el szeretné kerülni a felhasználók figyelmének felkeltését. Ezzel azt mondják, hogy vannak olyan idők, amikor nem tudod elkerülni, és ezekben az időben a Read-Host cmdlet. Használata nagyon egyszerű:

$ FirstName = Read-Host -Prompt 'Adja meg az utónevét'

Az ön által beírni kívánt adatokat a változó elmenti.

Az író kimenet ugyanolyan egyszerű a Write-Output cmdletnél.

Write-Output "How-To Geek Rocks!"

Csatlakozz hozzánk holnap, ahol mindannyiunkat összekapcsoljuk, amit együtt tanultak!