Тъй като се отдръпваме от просто да изпълняваме команди и се преместваме в писането на пълни разпенени скриптове, ще ви е необходимо временно място за съхранение на данни. Тук идва променливата.
Не забравяйте да прочетете предишните статии в серията:
И останете настроени за останалата част от серията през цялата седмица.
Повечето програмни езици позволяват използването на променливи, които са просто контейнери, които съдържат стойности. В PowerShell имаме и променливи и те наистина са лесни за използване. Ето как да създадете променлива, наречена "FirstName", и да й дадете стойността "Тейлър".
$ FirstName = "Тейлър"
Първото нещо, което повечето хора изглежда искат, е защо поставяме знак за долар пред името на променливите и това всъщност е много добър въпрос. Наистина знакът за долара е само малко намек за черупката, че искаме да получим достъп до съдържанието на променливата (мисля какво има вътре в контейнера), а не самия контейнер. В PowerShell имената на променливите не включват знака на долара, което означава, че в горния пример името на променливите всъщност е "FirstName".
В PowerShell можете да видите всички променливи, които сте създали в променливата PSDrive.
gci променлива:
Което означава, че можете да изтриете променлива от черупката по всяко време:
Премахване на променлива на елемента: \ FirstName
Променливите не трябва да съдържат нито един обект; можете също толкова лесно да съхранявате множество обекти в променлива. Например, ако искате да запазите списък с текущи процеси в променлива, можете просто да го присвоите на изхода на Get-Process.
$ Proc = Get-Process
Трикът за разбиране на това е да се помни, че дясната страна на знака за равенство винаги се оценява първо. Това означава, че можете да имате пълен тръбопровод от дясната страна, ако искате.
$ CPUHogs = Get-Process Сортиране на процесора изберете -Първи 3
Променливата CPUHogs ще съдържа трите текущи процеси, използващи най-много процесори.
Когато имате променлива, която държи колекция от обекти, има някои неща, които трябва да сте наясно. Например, извикването на метод на променливата ще доведе до извикване на всеки обект в колекцията.
$ CPUHogs.Kill ()
Което ще убие всичките три процеса в колекцията. Ако искате да имате достъп до единичен обект в променливата, трябва да го третирате като масив.
$ CPUHogs [0]
Това ще ви даде първия обект в колекцията.
Променливите в PowerShell са слабо въведени по подразбиране, което означава, че те могат да съдържат някакви данни, което изглежда привлича нови потребители към PowerShell през цялото време!
$ a = 10
$ b = '20'
Така че имаме две променливи, едната съдържа низ и другото цяло число. И така, какво ще стане, ако ги добавите? Всъщност зависи от кой ред да ги добавите.
$ a + $ b = 30
Докато
$ b + $ a = 2010
В първия пример, първият операнд е цяло число $ a, така че PowerShell мисли, че смятате, че се опитвате да направите математика и следователно се опитвате да конвертирате всички други операнди в цели числа. Във втория пример обаче първият операнд е низ, така че PowerShell просто превръща останалите операнди в низове и ги свързва. По-усъвършенстваните сценарий предотвратяват този вид придобиване чрез прехвърляне на променливата на вида, който очакват.
[int] $ Брой = 5
[int] $ Брой = '5'
Горното ще доведе до променливата Number, която съдържа обект с цяло число със стойност 5.
Тъй като PowerShell е предназначен да автоматизира нещата, вие ще искате да избягвате да накарате потребителите да получават информация, когато е възможно. С това казано, ще има моменти, в които не можете да го избегнете и за тези времена имаме cmdlet на Read-Host. Използването му е наистина просто:
$ FirstName = Read-Host -Prompt 'Въведете първото си име'
Каквото и да въведете, ще бъде запазено в променливата.
Изходът за писане е също толкова лесно с помощта на командата Write-Out cmdlet.
Пишете-изход "Как да Geek скали!"
Присъединете се към нас утре, когато свързваме всичко, което сме научили заедно!