Geek School: PowerShell-variabelen, invoer en uitvoer leren

geek-school-learning-powershell-variabelen-input-and-output foto 1

Nu we afstappen van het simpelweg uitvoeren van commando's en beginnen met het schrijven van volledige scripts, heb je een tijdelijke plek nodig om gegevens op te slaan. Dit is waar variabelen binnenkomen.

Lees zeker ook de vorige artikelen in de serie:



  • Leer hoe u Windows kunt automatiseren met PowerShell
  • Cmdlets leren gebruiken in PowerShell
  • Objecten leren gebruiken in PowerShell
  • Leren formatteren, filteren en vergelijken in PowerShell
  • Leer hoe u externe functies in PowerShell kunt gebruiken
  • PowerShell gebruiken om computerinformatie op te halen
  • Werken met verzamelingen in PowerShell

En blijf de hele week op de hoogte voor de rest van de serie.

Variabelen

De meeste programmeertalen staan ​​het gebruik van variabelen toe, dit zijn gewoon containers die waarden bevatten. In PowerShell hebben we ook variabelen en ze zijn heel gemakkelijk te gebruiken. Hier leest u hoe u een variabele met de naam FirstName maakt en deze de waarde Taylor geeft.

$Voornaam = Taylor

Het eerste dat de meeste mensen lijken te vragen, is waarom we een dollarteken voor de naam van de variabele zetten, en dat is eigenlijk een heel goede vraag. Echt, het dollarteken is slechts een kleine hint naar de shell dat we toegang willen hebben tot de inhoud van de variabele (denk aan wat er in de container zit) en niet de container zelf. In PowerShell bevatten variabelenamen het dollarteken niet, wat betekent dat in het bovenstaande voorbeeld de naam van de variabele eigenlijk FirstName is.

In PowerShell kunt u alle variabelen zien die u hebt gemaakt in de variabele PSDrive.

gci variabele:

geek-school-learning-powershell-variabelen-input-and-output foto 2

Wat betekent dat je op elk moment een variabele uit de shell kunt verwijderen:

Remove-Item-variabele:FirstName

Variabelen hoeven ook geen enkel object te bevatten; je kunt net zo gemakkelijk meerdere objecten in een variabele opslaan. Als u bijvoorbeeld een lijst met lopende processen in een variabele wilt opslaan, kunt u deze gewoon de uitvoer van Get-Process toewijzen.

$Proc = Get-proces

De truc om dit te begrijpen is om te onthouden dat de rechterkant van het gelijkteken altijd als eerste wordt geëvalueerd. Dit betekent dat u desgewenst een hele pijpleiding aan de rechterkant kunt hebben.

$CPUHogs = Get-proces | Sorteer CPU -Aflopend | selecteer -Eerste 3

De variabele CPUHogs bevat nu de drie lopende processen die de meeste CPU gebruiken.

geek-school-learning-powershell-variabelen-input-and-output foto 3

Als je een variabele hebt die een verzameling objecten bevat, zijn er enkele dingen waar je op moet letten. Als u bijvoorbeeld een methode op de variabele aanroept, wordt deze op elk object in de verzameling aangeroepen.

$CPUHogs.Kill()

Wat alle drie de processen in de collectie zou doden. Als u toegang wilt tot een enkel object in de variabele, moet u het als een array behandelen.

$CPUHogs[0]

Als u dat doet, krijgt u het eerste object in de verzameling.

geek-school-learning-powershell-variabelen-input-and-output foto 4

Laat je niet vangen!

Variabelen in PowerShell zijn standaard zwak getypt, wat betekent dat ze alle soorten gegevens kunnen bevatten, dit lijkt de hele tijd nieuwkomers in PowerShell te vangen!

$a = 10

$b = '20'

We hebben dus twee variabelen, de ene bevat een string en de andere een geheel getal. Dus wat gebeurt er als je ze toevoegt? Het hangt er eigenlijk van af in welke volgorde je ze toevoegt.

$a + $b = 30

Terwijl

$b + $a = 2010

In het eerste voorbeeld is de eerste operand een geheel getal, $a, dus PowerShell denkt dat je probeert om wiskunde te doen en probeert daarom ook andere operanden om te zetten in gehele getallen. In het tweede voorbeeld is de eerste operand echter een tekenreeks, dus PowerShell converteert gewoon de rest van de operanden naar tekenreeksen en voegt ze samen. Meer geavanceerde scripters voorkomen dit soort ellende door de variabele te casten naar het type dat ze verwachten.

[int]$Getal = 5
[int]$Getal = '5'

Het bovenstaande resulteert beide in de variabele Number die een geheel getal bevat met een waarde van 5.

Input en output

Omdat PowerShell bedoeld is om dingen te automatiseren, wilt u voorkomen dat gebruikers waar mogelijk om informatie worden gevraagd. Dat gezegd hebbende, er zullen momenten zijn waarop je het niet kunt vermijden, en voor die tijden hebben we de Read-Host-cmdlet. Het gebruik ervan is heel eenvoudig:

$FirstName = Read-Host -Vraag 'Voer uw voornaam in'

geek-school-learning-powershell-variabelen-input-and-output foto 5

Wat u ook invoert, wordt opgeslagen in de variabele.

geek-school-learning-powershell-variabelen-input-and-output foto 6

Het schrijven van uitvoer is net zo eenvoudig met de Write-Output cmdlet.

Write-Output How-To Geek Rocks!

geek-school-learning-powershell-variabelen-input-and-output foto 7

Kom morgen bij ons langs waar we alles wat we hebben geleerd aan elkaar koppelen!

Meer verhalen

Hoe apt-get-installaties in Linux-stijl naar Windows te brengen met Chocolatey

Er valt veel te zeggen voor app-winkels en de manier waarop ze de installatie en het bijwerken van software vereenvoudigen, maar Linux-gebruikers kunnen profiteren van het apt-get-commando om meer controle over dingen te krijgen. Met Chocolatey kunnen Windows-gebruikers vrijwel hetzelfde doen vanaf de opdrachtregel.

Geek Trivia: Welke frisdrank zat oorspronkelijk vol met een natuurlijk stemmingsstabiliserend medicijn?

Denk je het antwoord te weten? Klik door om te zien of je gelijk hebt!

Een map met afbeeldingen gemakkelijk comprimeren met een batchbestand in Windows

Onlangs schreven we hoe je een map met afbeeldingen comprimeert met een enkele regel van de bash-shell-prompt, die oorspronkelijk is voor Linux, maar werkt op Windows als je Cygwin installeert. Natuurlijk is er een eenvoudigere oplossing voor Windows-gebruikers, en lezer Lee Thompson schreef om het met jullie allemaal te delen.

Hoe de lijst met recente documenten in Word 2013 te wissen

Wanneer u Word 2013 opent, wordt aan de linkerkant van het scherm een ​​lijst met recent geopende documenten weergegeven. Deze lijst wordt ook weergegeven wanneer u de optie Openen selecteert vanuit het programma. Als u deze lijst liever niet ziet, kunt u deze eenvoudig uitschakelen.

Hoe iedereen kan profiteren van de toegankelijkheidsopties van Windows

De toegankelijkheidsopties die beschikbaar zijn in Windows zijn ontworpen om mensen te helpen die moeite hebben met het gebruik van een computer vanwege een aandoening of beperking, maar er zijn tal van interessante opties die voor iedereen ongelooflijk nuttig kunnen zijn. We zullen onthullen hoe de Toegankelijkheid

Geek School: Cmdlets leren gebruiken in PowerShell

Als je ipconfig of ping via de opdrachtprompt hebt gebruikt, ben je halverwege om een ​​PowerShell-ninja te worden. Dus kom op en doe met ons mee terwijl we cmdlets ontdekken in deze installatie van Geek School.

Wat is het voordeel van het gebruik van het Tar-bestandsformaat vandaag?

De vraag- en antwoordsessie van vandaag komt tot ons met dank aan SuperUser - een onderafdeling van Stack Exchange, een community-gedreven groep van Q&A-websites.

Geek Trivia: Als je ergens last van hebt, hoeveel heb je er dan van?

Denk je het antwoord te weten? Klik door om te zien of je gelijk hebt!

Early Internet Explorer 11 Build heeft een functie voor het synchroniseren van tabbladen, vermomd als Firefox

In het weekend lekte een vroege build van Windows Blue op internet en biedt een interessant kijkje in de nieuwste versie van Internet Explorer. De nieuwe versie wordt geleverd met een functie voor het synchroniseren van tabbladen en doet verrassend genoeg zich voor als Firefox (Gecko). Microsoft heeft ook extra

Hoe meldingen voor een specifiek e-mailaccount in Windows 8 in of uit te schakelen

Meldingen kunnen soms overweldigend worden, vooral als u net zoveel e-mail ontvangt als wij.