Начална » как да » Geek училище за изучаване на PowerShell променливи, вход и изход

    Geek училище за изучаване на PowerShell променливи, вход и изход

    Тъй като се отдалечаваме от просто изпълняващите се команди и се преместваме в писане на пълни скриптове, ще ви е необходимо временно място за съхраняване на данни. Тук са променливите.

    Прочетете предишните статии от поредицата:

    • Научете как да автоматизирате Windows с PowerShell
    • Научете се да използвате Cmdlets в PowerShell
    • Научете как да използвате обекти в PowerShell
    • Обучение за форматиране, филтриране и сравняване в PowerShell
    • Научете се да използвате Remoting в PowerShell
    • Използване на PowerShell за получаване на информация за компютъра
    • Работа с колекции в PowerShell

    Очаквайте останалата част от поредицата цяла седмица.

    Променливи

    Повечето езици за програмиране позволяват използването на променливи, които са просто контейнери, които държат стойности. В PowerShell ние също имаме променливи и те са много лесни за използване. Ето как да създадете променлива, наречена "FirstName" и дайте й стойност "Taylor".

    $ FirstName = „Тейлър“

    Първото нещо, което повечето хора си задават, е защо поставяме знак за долар пред името на променливите и това всъщност е много добър въпрос. Наистина, знакът за долар е само малко намек към черупката, че искаме да получим достъп до съдържанието на променливата (помислете какво е вътре в контейнера), а не самия контейнер. В PowerShell имената на променливите не включват знака за долар, което означава, че в горния пример името на променливите всъщност е „FirstName“.

    В PowerShell можете да видите всички променливи, които сте създали в променливата PSDrive.

    променлива gci:

    Това означава, че можете да изтриете променлива от черупката по всяко време:

    Remove-Item Variable: Първо име

    Променливите не трябва да съдържат нито един обект; можете също толкова лесно да съхранявате множество обекти в променлива. Например, ако искате да съхраните списък с изпълнявани процеси в променлива, можете просто да го зададете на изхода на Get-Process.

    $ Proc = Get-Process

    Номерът за разбиране на това е да се помни, че дясната страна на знака за равенство винаги се оценява първо. Това означава, че можете да имате цял тръбопровод от дясната страна, ако искате.

    $ CPUHogs = Get-Process | Сортиране на CPU -Descending | изберете -Първи 3

    Променливата CPUHogs сега ще съдържа трите изпълнявани процеса, използващи най-много процесора.

    Когато имате променлива, съдържаща колекция от обекти, има някои неща, които трябва да знаете. Например извикването на метод върху променливата ще доведе до извикването му за всеки обект в колекцията.

    $ CPUHogs.Kill ()

    Което би убило всичките три процеса в колекцията. Ако искате да получите достъп до един обект в променливата, трябва да го третирате като масив.

    $ CPUHogs [0]

    Това ще ви даде първия обект в колекцията.

    Не се хващай!

    Променливите в PowerShell са слабо напечатани по подразбиране, което означава, че могат да съдържат всякакъв вид данни, като това постоянно улавя нови потребители на PowerShell през цялото време.!

    $ a = 10

    $ b = '20'

    Така че имаме две променливи, единият съдържа низ, а другият - цяло число. И така, какво ще стане, ако ги добавите? Всъщност зависи от това в коя поръчка сте ги добавили.

    $ a + $ b = 30

    Докато

    $ b + $ a = 2010

    В първия пример първият операнд е цяло число, $ a, така че PowerShell смята, че се опитва да направи математика и затова се опитва да конвертира всички други операнди в цели числа. Във втория пример първият операнд е низ, така че PowerShell просто преобразува останалите операнди в низове и ги свързва. По-напредналите скриптове предотвратяват този вид гоча чрез прехвърляне на променливата към типа, който очакват.

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

    Посоченото по-горе ще доведе до променливата Number, съдържаща целочислен обект със стойност 5.

    Вход и изход

    Тъй като PowerShell има за цел да автоматизира нещата, вие ще искате да избягвате да накарате потребителите да получават информация, когато е възможно. С това каза, че ще има моменти, в които не можете да го избегнете и за тези времена имаме четец-четец. Използването му е много просто:

    $ FirstName = Read-Host -Prompt 'Въведете първото си име'

    Всичко, което въведете, ще бъде записано в променливата.

    Писането на изхода е също толкова лесно с кратката команда Write-Output.

    Напишете-Output "Как да Geek скали!"

    Присъединете се към нас утре, когато свържем всичко, което сме научили заедно!