Startpagina » hoe » Geek School Learning PowerShell-variabelen, invoer en uitvoer

    Geek School Learning PowerShell-variabelen, invoer en uitvoer

    Naarmate we verder gaan met het uitvoeren van opdrachten en het schrijven van volledig geschreven scripts, hebt u een tijdelijke plaats nodig om gegevens op te slaan. Dit is waar variabelen binnenkomen.

    Zorg ervoor dat u de vorige artikelen in de serie leest:

    • Leer hoe u Windows kunt automatiseren met PowerShell
    • Leren gebruik te maken van cmdlets in PowerShell
    • Leren hoe objecten in PowerShell te gebruiken
    • Leren opmaken, filteren en vergelijken in PowerShell
    • Leer hoe u Remoting kunt gebruiken in PowerShell
    • PowerShell gebruiken om computerinformatie te verkrijgen
    • Werken met collecties in PowerShell

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

    Variabelen

    In de meeste programmeertalen kunnen variabelen worden gebruikt, dit zijn eenvoudig containers met waarden. In PowerShell hebben we ook variabelen en ze zijn heel gemakkelijk te gebruiken. Hier ziet u hoe u een variabele met de naam "FirstName" maakt en deze de waarde "Taylor" geeft.

    $ FirstName = "Taylor"

    Het eerste wat de meeste mensen lijken te vragen is waarom we een dollarteken plaatsen voor de naam van de variabelen, en dat is eigenlijk een heel goede vraag. Echt, het dollarteken is slechts een kleine hint naar de shell die we toegang willen geven tot de inhoud van de variabele (bedenk wat zich in de container bevindt) en niet de container zelf. In PowerShell bevatten variabelenamen niet het dollarteken, wat betekent dat in het bovenstaande voorbeeld de naam van de variabelen eigenlijk "FirstName" is.

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

    gci variabele:

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

    Variabele van artikel verwijderen: \ Voornaam

    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 actieve processen in een variabele wilt opslaan, kunt u deze gewoon toewijzen aan de uitvoer van Get-Process.

    $ Proc = Get-Process

    De truc om dit te begrijpen is om te onthouden dat de rechterkant van het gelijkteken altijd eerst wordt geëvalueerd. Dit betekent dat u een volledige pijplijn aan de rechterkant kunt hebben als u dat wilt.

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

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

    Wanneer u een variabele met een verzameling objecten hebt, zijn er enkele dingen waar u zich bewust van moet zijn. Als u bijvoorbeeld een methode op de variabele aanroept, wordt deze aangeroepen voor elk object in de verzameling.

    $ CPUHogs.Kill ()

    Wat alle drie processen in de verzameling zou doden. Als u één object in de variabele wilt gebruiken, moet u het als een array behandelen.

    $ CPUHogs [0]

    Als je dat doet, krijg je het eerste object in de verzameling.

    Niet betrapt worden!

    Variabelen in PowerShell zijn standaard zwak ingetikt, wat betekent dat ze elke soort gegevens kunnen bevatten, dit lijkt PowerShell de hele tijd te raken.!

    $ a = 10

    $ b = '20'

    Dus we hebben twee variabelen, één bevat een string en de ander een geheel getal. Dus wat gebeurt er als je ze toevoegt? Het hangt eigenlijk af van de volgorde waarin 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 u aan het proberen bent om wiskunde te doen en probeert daarom ook alle andere operanden in gehele getallen te converteren. In het tweede voorbeeld is de eerste operand echter een tekenreeks, dus PowerShell converteert de rest van de operanden gewoon naar tekenreeksen en voegt ze samen. Meer geavanceerde scripters voorkomen dit soort kaarten door de variabele in het type te gieten dat ze verwachten.

    [int] $ Number = 5
    [int] $ Number = '5'

    Het bovenstaande resulteert allebei in de variabele Number met een integer object met een waarde van 5.

    Input en output

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

    $ FirstName = Read-Host - Prompt 'Vul je voornaam in'

    Wat u ook invoert, wordt dan opgeslagen in de variabele.

    Schrijfuitgang is net zo gemakkelijk met de cmdlet Write-Output.

    Write-Output "How-To Geek Rocks!"

    Doe morgen mee en bind alles wat we hebben geleerd samen!