Geek School: Изучаване на променливите на PowerShell, вход и изход

Съдържание:

Geek School: Изучаване на променливите на PowerShell, вход и изход
Geek School: Изучаване на променливите на PowerShell, вход и изход

Видео: Geek School: Изучаване на променливите на PowerShell, вход и изход

Видео: Geek School: Изучаване на променливите на PowerShell, вход и изход
Видео: CS50 2015 - Week 6 - YouTube 2024, Април
Anonim
Тъй като се отдръпваме от просто да изпълняваме команди и се преместваме в писането на пълни разпенени скриптове, ще ви е необходимо временно място за съхранение на данни. Тук идва променливата.
Тъй като се отдръпваме от просто да изпълняваме команди и се преместваме в писането на пълни разпенени скриптове, ще ви е необходимо временно място за съхранение на данни. Тук идва променливата.

Не забравяйте да прочетете предишните статии в серията:

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

И останете настроени за останалата част от серията през цялата седмица.

Променливи

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

$FirstName = “Taylor”

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

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

gci variable:

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

Remove-Item Variable:FirstName

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

$Proc = Get-Process

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

$CPUHogs = Get-Process | Sort CPU -Descending | select -First 3

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

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

$CPUHogs.Kill()

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

$CPUHogs[0]

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

Image
Image

Да не се хванат!

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

$a = 10

$b = ‘20’

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

$a + $b = 30

Докато

$b + $a = 2010

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

[int]$Number = 5 [int]$Number = ‘5’

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

Вход и изход

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

$FirstName = Read-Host –Prompt ‘Enter your first name’

Каквото и да въведете, ще бъде запазено в променливата.
Каквото и да въведете, ще бъде запазено в променливата.
Изходът за писане е също толкова лесно с помощта на командата Write-Out cmdlet.
Изходът за писане е също толкова лесно с помощта на командата Write-Out cmdlet.

Write-Output “How-To Geek Rocks!”

Препоръчано: