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 скали!"
Присъединете се към нас утре, когато свържем всичко, което сме научили заедно!