Какво Π΅ Windows PowerShell ΠΈ с ΠΊΠ°ΠΊΠ²ΠΎ сС ядС? Част 2: Π’ΡŠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Π΅Π·ΠΈΠΊΠ° Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅

Π˜ΡΡ‚ΠΎΡ€ΠΈΡ‡Π΅ΡΠΊΠΈ ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ Π·Π° ΠΊΠΎΠΌΠ°Π½Π΄Π΅Π½ Ρ€Π΅Π΄ Π½Π° Unix систСми са ΠΏΠΎ-Π΄ΠΎΠ±Ρ€Π΅ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈ, ΠΎΡ‚ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ Π½Π° Windows, Π½ΠΎ с появата Π½Π° Π½ΠΎΠ²ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ситуацията сС ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ.

Какво Π΅ Windows PowerShell ΠΈ с ΠΊΠ°ΠΊΠ²ΠΎ сС ядС? Част 2: Π’ΡŠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Π΅Π·ΠΈΠΊΠ° Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅

PowerShell ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС скриптиран Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€Π°Π½, ΠΌΠ½ΠΎΠ³ΠΎΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ΅Π½ Π΅Π·ΠΈΠΊ, ΠΊΠΎΠΉΡ‚ΠΎ ΠΈΠΌΠ° Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈ Π½Π° класичСско ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½ΠΎ, ΠΎΠ±Π΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€Π°Π½ΠΎ ΠΈ Π΄ΠΎΡ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅: условно разклоняванС, Ρ†ΠΈΠΊΠ»ΠΈ, ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ, масиви, Ρ…Π΅Ρˆ-Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ, класовС, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΡ€Π°Ρ‚ΠΊΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ ΠΈ Ρ‚Ρ€ΡŠΠ±ΠΎΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈ. ΠŸΡ€Π΅Π΄Ρ…ΠΎΠ΄Π½Π°Ρ статия бСшС посвСтСн Π½Π° основитС Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π² ΠΎΠΊΠΎΠ»Π½Π°Ρ‚Π° срСда, Π° сСга ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΠΌΠ΅ Π½Π° Π½Π°ΡˆΠΈΡ‚Π΅ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΠΈ малък справочник Π·Π° програмисти.

Π‘ΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅:

ΠšΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈ
ΠŸΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ ΠΈ Ρ‚Π΅Ρ…Π½ΠΈΡ‚Π΅ Π²ΠΈΠ΄ΠΎΠ²Π΅
БистСмни ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ
ΠžΠ±Ρ…Π²Π°Ρ‚ΠΈ
ΠŸΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π½Π° срСдата (срСда)
АритмСтични ΠΈ сравнитСлни ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈ
ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈ Π·Π° присвояванС
ЛогичСски ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈ
УсловСн скок
Ρ†ΠΈΠΊΠ»ΠΈ
масиви
Π₯Сш Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ
Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ
Π“Ρ€Π΅ΡˆΠΊΠ° ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°

ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΠΊΠΎΠ΄ във всСки тСкстов Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΈΠ»ΠΈ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€Π°Π½Π° срСда Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° - Π½Π°ΠΉ-лСсният Π½Π°Ρ‡ΠΈΠ½ Π΅ Π΄Π° Π²Π·Π΅ΠΌΠ΅Ρ‚Π΅ Windows PowerShell ISE, ΠΊΠΎΠΉΡ‚ΠΎ сС доставя със ΡΡŠΡ€Π²ΡŠΡ€Π½ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΈ систСми Π½Π° Microsoft. Π’ΠΎΠ²Π° Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ само Π·Π° доста слоТни скриптовС: ΠΊΡ€Π°Ρ‚ΠΊΠΈΡ‚Π΅ Π½Π°Π±ΠΎΡ€ΠΈ ΠΎΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ са ΠΏΠΎ-лСсни Π·Π° ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ изпълнСниС.

ΠšΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈ

Π˜Π·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈ сС счита Π·Π° част ΠΎΡ‚ добрия стил Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅ Π·Π°Π΅Π΄Π½ΠΎ с правилния ΠΎΡ‚ΡΡ‚ΡŠΠΏ ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»:

# Для строчных ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ Ρ€Π΅ΡˆΠ΅Ρ‚ΠΊΠΈ β€” содСрТимоС строки ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Π½Π΅ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚.

<# 

       Π’Π°ΠΊ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ΡΡ Π½Π°Ρ‡Π°Π»ΠΎ ΠΈ ΠΊΠΎΠ½Π΅Ρ† Π±Π»ΠΎΡ‡Π½ΠΎΠ³ΠΎ коммСнтария. 
       Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ тСкст ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅Ρ‚.

#>

ΠŸΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ ΠΈ Ρ‚Π΅Ρ…Π½ΠΈΡ‚Π΅ Π²ΠΈΠ΄ΠΎΠ²Π΅

ΠŸΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡ‚Π΅ Π² PowerShell са ΠΈΠΌΠ΅Π½ΡƒΠ²Π°Π½ΠΈ ΠΎΠ±Π΅ΠΊΡ‚ΠΈ. Π˜ΠΌΠ΅Π½Π°Ρ‚Π° ΠΈΠΌ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π²ΠΊΠ»ΡŽΡ‡Π²Π°Ρ‚ Π΄ΠΎΠ»Π½Π°Ρ‚Π° Ρ‡Π΅Ρ€Ρ‚Π°, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ Π±ΡƒΠΊΠ²ΠΈ ΠΈ Ρ†ΠΈΡ„Ρ€ΠΈ. Π‘ΠΈΠΌΠ²ΠΎΠ»ΡŠΡ‚ $ Π²ΠΈΠ½Π°Π³ΠΈ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΡ€Π΅Π΄ΠΈ ΠΈΠΌΠ΅Ρ‚ΠΎ ΠΈ Π·Π° Π΄Π° Π΄Π΅ΠΊΠ»Π°Ρ€ΠΈΡ€Π°Ρ‚Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° Π΅ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ Π΄Π° Π΄Π°Π΄Π΅Ρ‚Π΅ Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π° Π²Π°Π»ΠΈΠ΄Π½ΠΎ ΠΈΠΌΠ΅:

Какво Π΅ Windows PowerShell ΠΈ с ΠΊΠ°ΠΊΠ²ΠΎ сС ядС? Част 2: Π’ΡŠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Π΅Π·ΠΈΠΊΠ° Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅

Π—Π° ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° (присвояванС Π½Π° стойност към нСя) сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΡŠΡ‚ Π·Π° присвояванС (символ =):

$test = 100

ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π΄Π΅ΠΊΠ»Π°Ρ€ΠΈΡ€Π°Ρ‚Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°, ΠΊΠ°Ρ‚ΠΎ посочитС нСйния Ρ‚ΠΈΠΏ Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΠΈ скоби (ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π·Π° ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π°Π½Π΅ Π½Π° Ρ‚ΠΈΠΏΠ°) ΠΏΡ€Π΅Π΄ΠΈ ΠΈΠΌΠ΅Ρ‚ΠΎ ΠΈΠ»ΠΈ стойността:

[int]$test = 100

$test = [int]100

Π’Π°ΠΆΠ½ΠΎ Π΅ Π΄Π° сС Ρ€Π°Π·Π±Π΅Ρ€Π΅, Ρ‡Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡ‚Π΅ Π² PowerShell са ΠΏΡŠΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΈ ΠΎΠ±Π΅ΠΊΡ‚ΠΈ (класовС) със свойства ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ, Ρ‡ΠΈΠΈΡ‚ΠΎ Ρ‚ΠΈΠΏΠΎΠ²Π΅ са Π±Π°Π·ΠΈΡ€Π°Π½ΠΈ Π½Π° Ρ‚Π΅Π·ΠΈ Π² .NET Core. Π˜Π·Π±Ρ€ΠΎΡΠ²Π°ΠΌΠ΅ основнитС:

Вип (.NET клас)

описаниС

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π΅Π½ ΠΊΠΎΠ΄

[Π½ΠΈΠ·] System.String

Unicode Π½ΠΈΠ· 

$test = "тСст"
$test = 'тСст'

[char]System.Char

Unicode Π·Π½Π°ΠΊ (16 Π±ΠΈΡ‚Π°)

[char]$test = 'c'

[bool] System.Boolean

Π±ΡƒΠ»Π΅Π² Ρ‚ΠΈΠΏ (Π±ΡƒΠ»Π΅Π² True ΠΈΠ»ΠΈ False)

[bool]$test = $true

[int] System.Int32

тридСсСт ΠΈ Π΄Π²Π΅ Π±ΠΈΡ‚Π° цяло число (32 Π±ΠΈΡ‚Π°)

[int]$test = 123456789

[дълъг] System.Int64

ΡˆΠ΅ΡΡ‚Π΄Π΅ΡΠ΅Ρ‚ ΠΈ Ρ‡Π΅Ρ‚ΠΈΡ€ΠΈ Π±ΠΈΡ‚Π° цяло число (64 Π±ΠΈΡ‚Π°)

[дълъг]$test = 12345678910

[Π΅Π΄ΠΈΠ½ΠΈΡ‡Π΅Π½] System.Single

число с ΠΏΠ»Π°Π²Π°Ρ‰Π° запСтая с дълТина 32 Π±ΠΈΡ‚Π°

[Π΅Π΄ΠΈΠ½ΠΈΡ‡Π΅Π½]$тСст = 12345.6789

[double]System.Double

число с ΠΏΠ»Π°Π²Π°Ρ‰Π° запСтая с дълТина 64 Π±ΠΈΡ‚Π° (8 Π±Π°ΠΉΡ‚Π°)

[double]$test = 123456789.101112

[decimal]БистСма.Decimal

128-Π±ΠΈΡ‚ΠΎΠ²ΠΎ число с ΠΏΠ»Π°Π²Π°Ρ‰Π° запСтая (Π·Π°Π΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΎ Π΄Π° Π·Π°Π²ΡŠΡ€ΡˆΠ²Π° с d)

[дСсСтичСн]$тСст = 12345.6789d

[DateTime]System.DateTime

Π΄Π°Ρ‚Π° ΠΈ час 

$test = GetDate

[масив] System.Object[]

масив, Ρ‡ΠΈΠΉΡ‚ΠΎ индСкс Π½Π° Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ Π·Π°ΠΏΠΎΡ‡Π²Π° ΠΎΡ‚ 0

$test_array = 1, 2, "тСст", 3, 4

[Ρ…Π΅Ρˆ Ρ‚Π°Π±Π»ΠΈΡ†Π°] System.Collections.Hashtable

Ρ…Π΅Ρˆ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈΡ‚Π΅ са асоциативни масиви с ΠΈΠΌΠ΅Π½ΡƒΠ²Π°Π½ΠΈ ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅, ΠΈΠ·Π³Ρ€Π°Π΄Π΅Π½ΠΈ Π½Π° ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°: @{key = "value"}

$test_hashtable = @{one="Π΅Π΄Π½ΠΎ"; two="Π΄Π²Π΅"; three="Ρ‚Ρ€ΠΈ"}

PowerShell ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° ΠΈΠΌΠΏΠ»ΠΈΡ†ΠΈΡ‚Π½ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π°Π½Π΅ Π½Π° Ρ‚ΠΈΠΏΠ°, освСн Ρ‚ΠΎΠ²Π° Ρ‚ΠΈΠΏΡŠΡ‚ Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°Ρ‚Π° ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΏΡ€ΠΎΠΌΠ΅Π½Π΅Π½ Π² Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π·Π° присвояванС), Π°ΠΊΠΎ Π½Π΅ Π΅ посочСн ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»Π½ΠΎ - Π² Ρ‚ΠΎΠ·ΠΈ случай ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΡŠΡ‚ Ρ‰Π΅ Π΄Π°Π΄Π΅ Π³Ρ€Π΅ΡˆΠΊΠ°. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ Ρ‚ΠΈΠΏΠ° Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°Ρ‚Π° ΠΎΡ‚ ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½ΠΈΡ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠ°Ρ‚ΠΎ ΠΈΠ·Π²ΠΈΠΊΠ°Ρ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° GetType():

$test.GetType().FullName

Какво Π΅ Windows PowerShell ΠΈ с ΠΊΠ°ΠΊΠ²ΠΎ сС ядС? Част 2: Π’ΡŠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Π΅Π·ΠΈΠΊΠ° Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅

Има Ρ€Π΅Π΄ΠΈΡ†Π° ΠΊΡ€Π°Ρ‚ΠΊΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π·Π° ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ. ВСхният списък Π² ΡƒΠ΄ΠΎΠ±Π½Π° Ρ„ΠΎΡ€ΠΌΠ° сС ΠΏΠΎΠΊΠ°Π·Π²Π° с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π°:

Get-Command -Noun Variable | ft -Property Name, Definition -AutoSize -Wrap

Какво Π΅ Windows PowerShell ΠΈ с ΠΊΠ°ΠΊΠ²ΠΎ сС ядС? Част 2: Π’ΡŠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Π΅Π·ΠΈΠΊΠ° Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅

Π—Π° Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅ Π΄Π΅ΠΊΠ»Π°Ρ€ΠΈΡ€Π°Π½ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ ΠΈ Ρ‚Π΅Ρ…Π½ΠΈΡ‚Π΅ стойности, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ спСциална ΠΊΡ€Π°Ρ‚ΠΊΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π°:

Get-Variable | more

Π’ΠΎΠ·ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΏΡ€Π΅ΠΊΠ°Π»Π΅Π½ΠΎ Ρ‚Ρ€ΠΎΠΌΠ°Π², ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-ΡƒΠ΄ΠΎΠ±Π½ΠΎ Π΅ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈΡ‚Π΅ с ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Ρ‡Ρ€Π΅Π· ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈ ΠΈΠ»ΠΈ Ρ‡Ρ€Π΅Π· Π΄ΠΈΡ€Π΅ΠΊΡ‚Π΅Π½ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ Ρ‚Π΅Ρ…Π½ΠΈΡ‚Π΅ свойства ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ. ΠšΡ€Π°Ρ‚ΠΊΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ ΠΎΠ±Π°Ρ‡Π΅ ΠΈΠΌΠ°Ρ‚ ΠΏΡ€Π°Π²ΠΎ Π΄Π° ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‚, Π·Π°Ρ‰ΠΎΡ‚ΠΎ Π²ΠΈ позволяват Π΄Π° Π·Π°Π΄Π°Π΄Π΅Ρ‚Π΅ някои Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ. Π’Π°ΠΆΠ½ΠΎ Π΅ Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅Ρ‚Π΅, Ρ‡Π΅ потрСбитСлскитС ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ сС Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Ρ‚ само Π² Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰Π°Ρ‚Π° сСсия. ΠšΠΎΠ³Π°Ρ‚ΠΎ ΠΊΠΎΠ½Π·ΠΎΠ»Π°Ρ‚Π° сС Π·Π°Ρ‚Π²ΠΎΡ€ΠΈ ΠΈΠ»ΠΈ ΡΠΊΡ€ΠΈΠΏΡ‚ΡŠΡ‚ ΠΏΡ€ΠΈΠΊΠ»ΡŽΡ‡ΠΈ, Ρ‚Π΅ сС ΠΈΠ·Ρ‚Ρ€ΠΈΠ²Π°Ρ‚.

БистСмни ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ

Π’ допълнСниС към Ρ‚Π΅Π·ΠΈ, Π΄Π΅ΠΊΠ»Π°Ρ€ΠΈΡ€Π°Π½ΠΈ ΠΎΡ‚ потрСбитСля, ΠΈΠΌΠ° Π²Π³Ρ€Π°Π΄Π΅Π½ΠΈ (систСмни) ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ сС ΠΈΠ·Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ слСд края Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰Π°Ρ‚Π° сСсия. Π’Π΅ са Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈ Π½Π° Π΄Π²Π° Ρ‚ΠΈΠΏΠ°, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ Π΄Π°Π½Π½ΠΈΡ‚Π΅ Π·Π° ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ Π½Π° PowerShell сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Ρ‚ Π² Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ, Π½Π° ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС присвояват ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ стойности сами. Π’Π΅ Π²ΠΊΠ»ΡŽΡ‡Π²Π°Ρ‚ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ $PWD:

$PWD.Path

Какво Π΅ Windows PowerShell ΠΈ с ΠΊΠ°ΠΊΠ²ΠΎ сС ядС? Част 2: Π’ΡŠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Π΅Π·ΠΈΠΊΠ° Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅

ΠŸΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡ‚Π΅ Π·Π° прСдпочитания са Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ Π·Π° ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Π½Π΅ Π½Π° потрСбитСлски прСдпочитания, Ρ‡ΠΈΠΈΡ‚ΠΎ стойности ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС промСнят. НапримСр, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ $ErrorActionPreference, сС Π·Π°Π΄Π°Π²Π° рСакцията Π½Π° командния ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ ΠΏΡ€ΠΈ възникванС Π½Π° Π½Π΅Ρ„Π°Ρ‚Π°Π»Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ.

Π’ допълнСниС към ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ ΠΈ ΠΊΡ€Π°Ρ‚ΠΊΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π·Π° Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ Π΄Π΅ΠΊΠ»Π°Ρ€ΠΈΡ€Π°Π½ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ, ΠΈΠΌΠ° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°: псСвдо-Π°ΠΊΡƒΠΌΡƒΠ»Π°Ρ‚ΠΎΡ€. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈΡ‚Π΅ с Π½Π΅Π³ΠΎ ΠΏΠΎ аналогия с Π΄Ρ€ΡƒΠ³ΠΈ устройства, Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡ‚Π΅ Π² Ρ‚ΠΎΠ·ΠΈ случай ΠΏΡ€ΠΈΠ»ΠΈΡ‡Π°Ρ‚ Π½Π° ΠΎΠ±Π΅ΠΊΡ‚ΠΈ Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π°Ρ‚Π° систСма:

Get-ChildItem Variable: | more

ΠΈΠ»ΠΈ

ls Variable: | more

Какво Π΅ Windows PowerShell ΠΈ с ΠΊΠ°ΠΊΠ²ΠΎ сС ядС? Част 2: Π’ΡŠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Π΅Π·ΠΈΠΊΠ° Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅

ΠžΠ±Ρ…Π²Π°Ρ‚ΠΈ

Π—Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡ‚Π΅ Π² PowerShell ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π° концСпцията Π·Π° ΠΎΠ±Ρ…Π²Π°Ρ‚ (Scope). ДСйствиСто Π½Π° глобалния ΠΎΠ±Ρ…Π²Π°Ρ‚ (Global) сС отнася Π·Π° цялата Ρ‚Π΅ΠΊΡƒΡ‰Π° сСсия - Π²ΠΊΠ»ΡŽΡ‡Π²Π° Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ систСмни ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ. Π›ΠΎΠΊΠ°Π»Π½ΠΈΡ‚Π΅ (Π»ΠΎΠΊΠ°Π»Π½ΠΈ) ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ са Π½Π°Π»ΠΈΡ‡Π½ΠΈ само Π² ΠΎΠ±Ρ…Π²Π°Ρ‚Π°, Π² ΠΊΠΎΠΉΡ‚ΠΎ са Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½ΠΈ: Π΄Π° Ρ€Π΅Ρ‡Π΅ΠΌ във функция. Π‘ΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π° ΠΈ концСпцията Π·Π° ΠΎΠ±Ρ…Π²Π°Ρ‚Π° Π½Π° скрипта (Script), Π½ΠΎ Π·Π° скриптовитС ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ тя Π΅ ΠΏΠΎ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΠΎ Π»ΠΎΠΊΠ°Π»Π½Π°. По ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π΄Π΅ΠΊΠ»Π°Ρ€ΠΈΡ€Π°Ρ‚Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ, ΠΈΠΌ сС Π΄Π°Π²Π° Π»ΠΎΠΊΠ°Π»Π΅Π½ ΠΎΠ±Ρ…Π²Π°Ρ‚ ΠΈ Π·Π° Π΄Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ Ρ‚ΠΎΠ²Π°, ΠΈΠΌΠ°Ρ‚Π΅ Π½ΡƒΠΆΠ΄Π° ΠΎΡ‚ спСциална конструкция ΠΊΠ°Ρ‚ΠΎ: $Global: ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° = стойност.

НапримСр Ρ‚ΠΎΠ²Π°:

$Global:test = 100

ΠŸΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π½Π° срСдата (срСда)

Π”Ρ€ΡƒΠ³ΠΎ псСвдо устройство, Env:, Π΅ Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΎ ΠΎΡ‚ PowerShell ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π½Π° срСдата. ΠšΠΎΠ³Π°Ρ‚ΠΎ ΠΎΠ±Π²ΠΈΠ²ΠΊΠ°Ρ‚Π° стартира, Ρ‚Π΅ сС ΠΊΠΎΠΏΠΈΡ€Π°Ρ‚ ΠΎΡ‚ родитСлския процСс (Ρ‚.Π΅. ΠΎΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π°, която Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€Π°Π»Π° Ρ‚Π΅ΠΊΡƒΡ‰Π°Ρ‚Π° сСсия) ΠΈ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΠΏΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½ΠΈΡ‚Π΅ ΠΈΠΌ стойности са ΡΡŠΡ‰ΠΈΡ‚Π΅ ΠΊΠ°Ρ‚ΠΎ стойноститС Π² контролния ΠΏΠ°Π½Π΅Π». Π—Π° Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡ‚Π΅ Π½Π° срСдата, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ ΠΊΡ€Π°Ρ‚ΠΊΠ°Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Get-ChildItem ΠΈΠ»ΠΈ Π½Π΅ΠΉΠ½ΠΈΡ‚Π΅ псСвдоними (псСвдоними): ls ΠΈ dir.

dir Env:

Какво Π΅ Windows PowerShell ΠΈ с ΠΊΠ°ΠΊΠ²ΠΎ сС ядС? Част 2: Π’ΡŠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Π΅Π·ΠΈΠΊΠ° Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅

Π’Π΅Π·ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ са ΠΏΠΎΡ€Π΅Π΄ΠΈΡ†ΠΈ ΠΎΡ‚ Π±Π°ΠΉΡ‚ΠΎΠ²Π΅ (ΠΈΠ»ΠΈ Π·Π½Π°Ρ†ΠΈ, Π°ΠΊΠΎ ΠΆΠ΅Π»Π°Π΅Ρ‚Π΅), чиято интСрпрСтация зависи само ΠΎΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π°, която Π³ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°. ΠšΡ€Π°Ρ‚ΠΊΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ *-Variable Π½Π΅ работят с ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π½Π° срСдата. Π—Π° Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ тях трябва Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ прСфикса Π½Π° устройството:

$env:TEST = "Hello, World!"

Какво Π΅ Windows PowerShell ΠΈ с ΠΊΠ°ΠΊΠ²ΠΎ сС ядС? Част 2: Π’ΡŠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Π΅Π·ΠΈΠΊΠ° Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅

АритмСтични ΠΈ сравнитСлни ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈ

PowerShell прСдоставя слСднитС Π°Ρ€ΠΈΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‡Π½ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈ: + (ΡΡŠΠ±ΠΈΡ€Π°Π½Π΅), - (ΠΈΠ·Π²Π°ΠΆΠ΄Π°Π½Π΅), * (ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅), / (Π΄Π΅Π»Π΅Π½ΠΈΠ΅) ΠΈ % (ΠΏΠΎ ΠΌΠΎΠ΄ΡƒΠ» ΠΈΠ»ΠΈ ΠΏΠΎ ΠΌΠΎΠ΄ΡƒΠ»). Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΡŠΡ‚ ΠΎΡ‚ Π°Ρ€ΠΈΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‡Π΅Π½ ΠΈΠ·Ρ€Π°Π· сС изчислява отляво надясно Π² ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΈΠ΅ с общоприСтия Ρ€Π΅Π΄ Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈΡ‚Π΅, Π° скобитС сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π·Π° Π³Ρ€ΡƒΠΏΠΈΡ€Π°Π½Π΅ Π½Π° части ΠΎΡ‚ ΠΈΠ·Ρ€Π°Π·Π°. Π˜Π½Ρ‚Π΅Ρ€Π²Π°Π»ΠΈΡ‚Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ сС ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€Π°Ρ‚, Ρ‚Π΅ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ само Π·Π° ΠΏΠΎ-лСсно Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΡŠΡ‚ + ΡΡŠΡ‰ΠΎ ΡΠ²ΡŠΡ€Π·Π²Π°, Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΡŠΡ‚ * повтаря Π½ΠΈΠ·ΠΎΠ²Π΅. Ако сС ΠΎΠΏΠΈΡ‚Π°Ρ‚Π΅ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡ‚Π΅ число към Π½ΠΈΠ·, Ρ‚ΠΎΠΉ Ρ‰Π΅ бъдС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π°Π½ Π² Π½ΠΈΠ·. Π’ допълнСниС, Π² PowerShell ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈ Π·Π° сравнСниС, ΠΊΠΎΠΈΡ‚ΠΎ тСстват Π·Π° съвпадСниС ΠΌΠ΅ΠΆΠ΄Ρƒ Π΄Π²Π΅ стойности ΠΈ Π²Ρ€ΡŠΡ‰Π°Ρ‚ Π±ΡƒΠ»Π΅Π²ΠΎΡ‚ΠΎ True ΠΈΠ»ΠΈ False:

ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€

описаниС

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π΅Π½ ΠΊΠΎΠ΄

-Π΅ΠΊΠ²

Π Π°Π²Π½ΠΎ / Π Π°Π²Π½ΠΎ (ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° = ΠΈΠ»ΠΈ == Π½Π° Π΄Ρ€ΡƒΠ³ΠΈ Π΅Π·ΠΈΡ†ΠΈ)

$тСст = 100
$test -eq 123 

-Π½Π΅

НС Π΅ Ρ€Π°Π²Π½ΠΎ / НС Π΅ Ρ€Π°Π²Π½ΠΎ (ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° <> ΠΈΠ»ΠΈ !=)

$тСст = 100
$test -ne 123   

-gt

По-голямо ΠΎΡ‚ / ΠŸΠΎΠ²Π΅Ρ‡Π΅ (Π°Π½Π°Π»ΠΎΠ³ΠΎΠ² >)

$тСст = 100
$test -gt 123

-ge

По-голямо ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ / По-голямо ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ (ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° >=)

$тСст = 100
$test -ge 123

- lt

По-ΠΌΠ°Π»ΠΊΠΎ ΠΎΡ‚ / По-ΠΌΠ°Π»ΠΊΠΎ (ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° <)

$тСст = 100
$test -lt 123  

-Π»Π΅

По-ΠΌΠ°Π»ΠΊΠΎ ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ / По-ΠΌΠ°Π»ΠΊΠΎ ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ (ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° <=)

$тСст = 100
$test -le 123

Има Π΄Ρ€ΡƒΠ³ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π²ΠΈ позволяват Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π΄Π° сравняватС Π½ΠΈΠ·ΠΎΠ²Π΅ въз основа Π½Π° замСстващ Π·Π½Π°ΠΊ ΠΈΠ»ΠΈ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ рСгулярни ΠΈΠ·Ρ€Π°Π·ΠΈ, Π·Π° Π΄Π° ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π°Ρ‚Π΅ Π½Π° шаблон. Π©Π΅ Π³ΠΈ Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Π² слСдващитС статии. Π‘ΠΈΠΌΠ²ΠΎΠ»ΠΈΡ‚Π΅ <, > ΠΈ = Π½Π΅ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π·Π° сравнСниС, Π·Π°Ρ‰ΠΎΡ‚ΠΎ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π·Π° Π΄Ρ€ΡƒΠ³ΠΈ Ρ†Π΅Π»ΠΈ.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈ Π·Π° присвояванС

Π’ допълнСниС към Π½Π°ΠΉ-чСсто срСщания ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ =, ΠΈΠΌΠ° ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈ Π·Π° присвояванС: +=, -=, *=, /= ΠΈ %=. Π’Π΅ промСнят стойността ΠΏΡ€Π΅Π΄ΠΈ присвояванС. Π£Π½Π°Ρ€Π½ΠΈΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈ ++ ΠΈ -, ΠΊΠΎΠΈΡ‚ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π°Ρ‚ ΠΈΠ»ΠΈ намаляват стойността Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°, сС Π΄ΡŠΡ€ΠΆΠ°Ρ‚ ΠΏΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π½Π°Ρ‡ΠΈΠ½ - Ρ‚Π΅ ΡΡŠΡ‰ΠΎ сС отнасят Π·Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ Π·Π° присвояванС.

ЛогичСски ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈ

Π‘Π°ΠΌΠΎΡ‚ΠΎ сравнСниС Π½Π΅ Π΅ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ, Π·Π° Π΄Π° сС ΠΎΠΏΠΈΡˆΠ°Ρ‚ слоТни условия. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ всякакви логичСски ΠΈΠ·Ρ€Π°Π·ΠΈ, ΠΊΠ°Ρ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈΡ‚Π΅: -and, -or, -xor, -not and! .. Π’Π΅ работят ΠΊΠ°Ρ‚ΠΎ Π² Π΄Ρ€ΡƒΠ³ΠΈ Π΅Π·ΠΈΡ†ΠΈ Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ скоби, Π·Π° Π΄Π° посочитС Ρ€Π΅Π΄Π° Π½Π° ΠΎΡ†Π΅Π½ΠΊΠ°:

("ВСст" -eq "ВСст") -and (100 -eq 100)

-not (123 -gt 321) 

!(123 -gt 321)

УсловСн скок

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ Π·Π° разклоняванС Π² PowerShell са стандартни: IF(IF…ELSE, IF…ELSEIF…ELSE) ΠΈ SWITCH. НСка Π΄Π° Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ ΠΈΠΌ с ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈ:

[int]$test = 100
if ($test -eq 100) {
      Write-Host "test = 100"
}



[int]$test = 50
if ($test -eq 100) {
       Write-Host "test = 100"
}
else {
      Write-Host "test <> 100"
}



[int]$test = 10
if ($test -eq 100) {
      Write-Host "test = 100"
}
elseif ($test -gt 100) {
      Write-Host "test > 100"
}
else {
       Write-Host "test < 100"
}



[int]$test = 5
switch ($test) {
     0 {Write-Host "test = 0"}
     1 {Write-Host "test = 1"}
     2 {Write-Host "test = 2"}
     3 {Write-Host "test = 3"}
     4 {Write-Host "test = 4"}
     5 {Write-Host "test = 5"}
     default {Write-Host "test > 5 ΠΈΠ»ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ"}
}

Ρ†ΠΈΠΊΠ»ΠΈ

PowerShell ΠΈΠΌΠ° няколко разновидности Π½Π° Ρ†ΠΈΠΊΠ»ΠΈ: WHILE, DO WHILE, DO UNTIL, FOR ΠΈ FOREACH.

Цикъл с ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎ условиС Ρ€Π°Π±ΠΎΡ‚ΠΈ, Π°ΠΊΠΎ/стига Π΄Π° Π΅ вярно:

[int]$test = 0
while ($test -lt 10) {
      Write-Host $test
      $test = $test + 1
}

Π¦ΠΈΠΊΠ»ΠΈΡ‚Π΅ с постусловиС Ρ‰Π΅ сС ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚ ΠΏΠΎΠ½Π΅ вСднъТ, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ условиСто сС провСрява слСд итСрацията. Π’ ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ DO WHILE Ρ€Π°Π±ΠΎΡ‚ΠΈ, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ условиСто Π΅ вярно, Π° DO UNTIL Ρ€Π°Π±ΠΎΡ‚ΠΈ, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ Π΅ нСвярно:

[int]$test = 0
do {
      Write-Host $test
      $test = $test + 1 
}
while ($test -lt 10)



[int]$test = 0
do {
      Write-Host $test
      $test = $test + 1 
}
until ($test -gt 9)

Броят Π½Π° повторСнията Π½Π° Ρ†ΠΈΠΊΡŠΠ»Π° FOR Π΅ извСстСн ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎ:

for ([int]$test = 0; $test -lt 10; $test++) {
       Write-Host $test
}

Π’ Ρ†ΠΈΠΊΡŠΠ»Π° FOREACH ΠΈΡ‚Π΅Ρ€ΠΈΡ€Π° Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ‚Π΅ Π½Π° масив ΠΈΠ»ΠΈ колСкция (Ρ…Π΅Ρˆ Ρ‚Π°Π±Π»ΠΈΡ†Π°):

$test_collection = "item1", "item2", "item3"
foreach ($item in $test_collection)
{
        Write-Host $item
}

масиви

ΠŸΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡ‚Π΅ Π½Π° PowerShell ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Ρ‚ Π½Π΅ само Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½ΠΈ ΠΎΠ±Π΅ΠΊΡ‚ΠΈ (число, Π½ΠΈΠ· ΠΈ Ρ‚.Π½.), Π½ΠΎ ΠΈ мноТСство Ρ‚Π°ΠΊΠΈΠ²Π°. Най-простият Π²ΠΈΠ΄ Ρ‚Π°ΠΊΠΈΠ²Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ са масивитС. ΠœΠ°ΡΠΈΠ²ΡŠΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΡΡŠΡΡ‚ΠΎΠΈ ΠΎΡ‚ няколко Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚Π°, Π΅Π΄ΠΈΠ½ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ ΠΈΠ»ΠΈ Π΄Π° Π΅ ΠΏΡ€Π°Π·Π΅Π½, Ρ‚.Π΅. Π½Π΅ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈ. Π”Π΅ΠΊΠ»Π°Ρ€ΠΈΡ€Π° сС с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° @(), ΠΊΠΎΠΉΡ‚ΠΎ Ρ‰Π΅ Π½ΠΈ трябва Π² слСдващата статия - Ρ‚ΠΎΠΉ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π²Π°ΠΆΠ΅Π½ Π·Π° добавянС Π½Π° Π΄Ρ€ΡƒΠ³ΠΈ масиви към масив (създаванС Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½ΠΈ масиви), ΠΏΡ€Π΅Π΄Π°Π²Π°Π½Π΅ Π½Π° масиви Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΊΠ°Ρ‚ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ:

$test_array = @() #создаСм пустой массив

ΠšΠΎΠ³Π°Ρ‚ΠΎ ΠΌΠ°ΡΠΈΠ²ΡŠΡ‚ Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€Π°Π½, Π½Π΅Π³ΠΎΠ²ΠΈΡ‚Π΅ стойности сС изброяват Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈ със Π·Π°ΠΏΠ΅Ρ‚Π°ΠΈ (спСциалСн ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ,):

$test_array = @(1, 2, 3, 4) # создаСм массив ΠΈΠ· Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… элСмСнтов 

Π’ ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ случаи ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΡŠΡ‚ @() ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС пропуснат:

$test_array = 1, 2, 3, 4

Π’ Ρ‚ΠΎΠ·ΠΈ случай масив ΠΎΡ‚ Π΅Π΄ΠΈΠ½ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ сС ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€Π° ΠΏΠΎ слСдния Π½Π°Ρ‡ΠΈΠ½

$test_array = , 1

Π”ΠΎΡΡ‚ΡŠΠΏΡŠΡ‚ Π΄ΠΎ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ‚Π΅ Π½Π° масива сС ΠΎΡΡŠΡ‰Π΅ΡΡ‚Π²ΡΠ²Π° с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Π±Π°Π·ΠΈΡ€Π°Π½ Π½Π° Π½ΡƒΠ»Π° индСкс Π½Π° цяло число ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Π½Π° индСкса (ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΠΈ скоби):

$test_array[0] = 1

ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° посочитС няколко индСкса, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈ със Π·Π°ΠΏΠ΅Ρ‚Π°ΠΈ, Π²ΠΊΠ». повтарящи сС:

$test_array = "ΠΎΠ΄ΠΈΠ½", "Π΄Π²Π°", "Ρ‚Ρ€ΠΈ", "Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅"
$test_array[0,1,2,3]
$test_array[1,1,3,3,0]

Какво Π΅ Windows PowerShell ΠΈ с ΠΊΠ°ΠΊΠ²ΠΎ сС ядС? Част 2: Π’ΡŠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Π΅Π·ΠΈΠΊΠ° Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅

ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ .. (Π΄Π²Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ - ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π½Π° Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½) Π²Ρ€ΡŠΡ‰Π° масив ΠΎΡ‚ Ρ†Π΅Π»ΠΈ числа Π² ΡƒΠΊΠ°Π·Π°Π½ΠΈΡ‚Π΅ Π³ΠΎΡ€Π½Π° ΠΈ Π΄ΠΎΠ»Π½Π° Π³Ρ€Π°Π½ΠΈΡ†Π°. НапримСр ΠΈΠ·Ρ€Π°Π· 1..4 ΠΈΠ·Π²Π΅ΠΆΠ΄Π° масив ΠΎΡ‚ Ρ‡Π΅Ρ‚ΠΈΡ€ΠΈ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚Π° @(1, 2, 3, 4), Π° ΠΈΠ·Ρ€Π°Π· 8..5 ΠΈΠ·Π²Π΅ΠΆΠ΄Π° масив @(8, 7, 6, 5).

Какво Π΅ Windows PowerShell ΠΈ с ΠΊΠ°ΠΊΠ²ΠΎ сС ядС? Част 2: Π’ΡŠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Π΅Π·ΠΈΠΊΠ° Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅

Използвайки ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Π·Π° Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€Π°Ρ‚Π΅ масив ($test_array = 1..4) ΠΈΠ»ΠΈ Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ срСз (slice), Ρ‚.Π΅. послСдоватСлност ΠΎΡ‚ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈ ΠΎΡ‚ Π΅Π΄ΠΈΠ½ масив с индСкси ΠΎΡ‚ Π΄Ρ€ΡƒΠ³. Π’ Ρ‚ΠΎΠ·ΠΈ случай ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»Π½ΠΎ число -1 ΠΎΠ·Π½Π°Ρ‡Π°Π²Π° послСдния Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ ΠΎΡ‚ масива, -2 - прСдпослСдния ΠΈ Ρ‚.Π½.

$test_array = "ΠΎΠ΄ΠΈΠ½", "Π΄Π²Π°", "Ρ‚Ρ€ΠΈ", "Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅"
$test_array[0..2]
$test_array[2..0]
$test_array[-1..0]
$test_array[-2..1]

ΠžΠ±ΡŠΡ€Π½Π΅Ρ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Π΅ стойноститС Π½Π° цСлочислСния масив ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΏΠΎ-Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΎΡ‚ максималната стойност Π½Π° индСкса Π½Π° масива ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ. Π’ Ρ‚ΠΎΠ·ΠΈ случай всички стойности сС Π²Ρ€ΡŠΡ‰Π°Ρ‚ Π΄ΠΎ послСдната:

$test_array[0..100]

Ако сС ΠΎΠΏΠΈΡ‚Π°Ρ‚Π΅ Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ Π΅Π΄ΠΈΠ½ΠΈΡ‡Π΅Π½ Π½Π΅ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ ΠΎΡ‚ масива, сС Π²Ρ€ΡŠΡ‰Π° $null.

Какво Π΅ Windows PowerShell ΠΈ с ΠΊΠ°ΠΊΠ²ΠΎ сС ядС? Част 2: Π’ΡŠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Π΅Π·ΠΈΠΊΠ° Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅

Π’ PowerShell масивитС ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Ρ‚ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈ ΠΎΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Ρ‚ΠΈΠΏΠΎΠ²Π΅ ΠΈΠ»ΠΈ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ строго Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€Π°Π½ΠΈ:

$test_array = 1, 2, "тСст", 3, 4
for ([int]$i = 0; $i -lt $test_array.count; $i++)
{
          Write-Host $test_array[$i]
}

ΠšΡŠΠ΄Π΅Ρ‚ΠΎ свойството $test_array.count Π΅ броят Π½Π° Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ‚Π΅ Π½Π° масива.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π·Π° създаванС Π½Π° строго Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€Π°Π½ масив:

[int[]]$test_array = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

Π₯Сш Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ

Π”Ρ€ΡƒΠ³ основСн Ρ‚ΠΈΠΏ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π² Π΅Π·ΠΈΠΊΠ° PowerShell са Ρ…Π΅Ρˆ-Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ, извСстни ΡΡŠΡ‰ΠΎ ΠΊΠ°Ρ‚ΠΎ асоциативни масиви. Π₯Сш-Ρ‚Π°Π±Π»ΠΈΡ†ΠΈΡ‚Π΅ са ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ Π½Π° JSON ΠΎΠ±Π΅ΠΊΡ‚ΠΈ ΠΈ са ΠΈΠ·Π³Ρ€Π°Π΄Π΅Π½ΠΈ Π½Π° Π±Π°Π·Π° ΠΊΠ»ΡŽΡ‡-стойност. Π—Π° Ρ€Π°Π·Π»ΠΈΠΊΠ° ΠΎΡ‚ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ‚Π΅ масиви, Π΄ΠΎΡΡ‚ΡŠΠΏΡŠΡ‚ Π΄ΠΎ Ρ‚Π΅Ρ…Π½ΠΈΡ‚Π΅ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈ сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° Ρ‡Ρ€Π΅Π· Π½Π°ΠΈΠΌΠ΅Π½ΡƒΠ²Π°Π½ΠΈ ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅, ΠΊΠΎΠΈΡ‚ΠΎ са свойства Π½Π° ΠΎΠ±Π΅ΠΊΡ‚Π° (ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ ΠΈ индСксния ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ - ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΠΈ скоби).

ΠŸΡ€Π°Π·Π½Π° Ρ…Π΅Ρˆ-Ρ‚Π°Π±Π»ΠΈΡ†Π° сС Π΄Π΅ΠΊΠ»Π°Ρ€ΠΈΡ€Π° с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° символа @ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π½ΠΈ скоби:

$test_hashtable = @{}

ΠšΠΎΠ³Π°Ρ‚ΠΎ Π΄Π΅ΠΊΠ»Π°Ρ€ΠΈΡ€Π°Ρ‚Π΅, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Π΅Π΄Π½Π°Π³Π° Π΄Π° ΡΡŠΠ·Π΄Π°Π΄Π΅Ρ‚Π΅ ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅ ΠΈ Π΄Π° ΠΈΠΌ присвоитС стойности:

$test_hashtable = @{one="ΠΎΠ΄ΠΈΠ½"; two="Π΄Π²Π°"; three="Ρ‚Ρ€ΠΈ"; "some key"="some value"}

Π—Π° Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡ‚Π΅ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ към Ρ…Π΅Ρˆ-Ρ‚Π°Π±Π»ΠΈΡ†Π°, трябва Π΄Π° ΠΌΡƒ присвоитС ΠΊΠ»ΡŽΡ‡, ΠΊΠΎΠΉΡ‚ΠΎ всС ΠΎΡ‰Π΅ Π½Π΅ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°, ΠΈΠ»ΠΈ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Add (). Ако сС Π½Π°ΠΏΡ€Π°Π²ΠΈ присвояванС Π½Π° ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰ ΠΊΠ»ΡŽΡ‡, стойността ΠΌΡƒ Ρ‰Π΅ сС ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ. ΠœΠ΅Ρ‚ΠΎΠ΄ΡŠΡ‚ Remove() сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΏΡ€Π΅ΠΌΠ°Ρ…Π²Π°Π½Π΅ Π½Π° Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ ΠΎΡ‚ Ρ…Π΅Ρˆ Ρ‚Π°Π±Π»ΠΈΡ†Π°.

$test_hashtable."some key"
$test_hashtable["some key"]
$test_hashtable.Add("four", "Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅")
$test_hashtable.five = "ΠΏΡΡ‚ΡŒ"
$test_hashtable['five'] = "замСняСм Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅"
$test_hashtable.Remove("one")

Какво Π΅ Windows PowerShell ΠΈ с ΠΊΠ°ΠΊΠ²ΠΎ сС ядС? Част 2: Π’ΡŠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Π΅Π·ΠΈΠΊΠ° Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅

ΠŸΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ ΠΎΡ‚ Ρ‚ΠΎΠ·ΠΈ Ρ‚ΠΈΠΏ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΏΡ€Π΅Π΄Π°Π²Π°Ρ‚ ΠΊΠ°Ρ‚ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΊΡ€Π°Ρ‚ΠΊΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ - Π² слСдващата статия Ρ‰Π΅ ΠΏΡ€ΠΎΡƒΡ‡ΠΈΠΌ ΠΊΠ°ΠΊ сС ΠΏΡ€Π°Π²ΠΈ Ρ‚ΠΎΠ²Π°, Π° ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Ρ‰Π΅ Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ Π΄Ρ€ΡƒΠ³ ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Ρ‚ΠΈΠΏ - PSCustomObject.

Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

PowerShell ΠΈΠΌΠ° всичко Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π—Π° описаниСто ΠΈΠΌ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π½Π°Ρ‚Π° Π΄ΡƒΠΌΠ° Function, слСд ΠΊΠΎΠ΅Ρ‚ΠΎ трябва Π΄Π° посочитС ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° функцията ΠΈ тялото, ΠΎΠ³Ρ€Π°Π΄Π΅Π½ΠΎ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π½ΠΈ скоби. Ако трябва Π΄Π° ΠΏΡ€Π΅Π΄Π°Π΄Π΅Ρ‚Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈ Π½Π° функцията, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π³ΠΈ посочитС Π²Π΅Π΄Π½Π°Π³Π° слСд ΠΈΠΌΠ΅Ρ‚ΠΎ Π² скоби.

function имя-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚1, ..., Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚N) 
{ 
        Ρ‚Π΅Π»ΠΎ-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ 
} 

Ѐункцията Π²ΠΈΠ½Π°Π³ΠΈ Π²Ρ€ΡŠΡ‰Π° Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ – Ρ‚ΠΎΠ²Π° Π΅ масив ΠΎΡ‚ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈΡ‚Π΅ Π½Π° всички Π½Π΅ΠΉΠ½ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈ, Π°ΠΊΠΎ са ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΎΡ‚ Π΅Π΄ΠΈΠ½. Ако ΠΈΠΌΠ° само Π΅Π΄ΠΈΠ½ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, сС Π²Ρ€ΡŠΡ‰Π° СдинствСната стойност ΠΎΡ‚ ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΈΡ Ρ‚ΠΈΠΏ. ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡΡ‚Π° return $value добавя Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ със стойността $value към масива с Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ ΠΈ ΠΏΡ€Π΅ΠΊΡŠΡΠ²Π° ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° списъка с ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈ, Π° ΠΏΡ€Π°Π·Π½Π°Ρ‚Π° функция Π²Ρ€ΡŠΡ‰Π° $null.

НапримСр, Π½Π΅ΠΊΠ° създадСм функция Π·Π° ΠΏΠΎΠ²Π΄ΠΈΠ³Π°Π½Π΅ Π½Π° число Π½Π° ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚:

function sqr ($number)
{
      return $number * $number
}

Π˜ΠΌΠ°ΠΉΡ‚Π΅ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄, Ρ‡Π΅ Π² тялото Π½Π° функция ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ всякакви ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ, Π΄Π΅ΠΊΠ»Π°Ρ€ΠΈΡ€Π°Π½ΠΈ ΠΏΡ€Π΅Π΄ΠΈ Π΄Π° я ΠΈΠ·Π²ΠΈΠΊΠ°Ρ‚Π΅, Π° ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² PowerShell ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Π½Π΅ΠΎΠ±ΠΈΡ‡Π°ΠΉΠ½ΠΎ: Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ‚Π΅ (Π°ΠΊΠΎ ΠΈΠΌΠ° Ρ‚Π°ΠΊΠΈΠ²Π°) Π½Π΅ са ΠΎΠ³Ρ€Π°Π΄Π΅Π½ΠΈ Π² скоби ΠΈ са Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈ с ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»ΠΈ.

sqr 2

ΠΈΠ»ΠΈ Ρ‚Π°ΠΊΠ°:

sqr -number 2

ΠŸΠΎΡ€Π°Π΄ΠΈ Π½Π°Ρ‡ΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΠΉΡ‚ΠΎ сС ΠΏΡ€Π΅Π΄Π°Π²Π°Ρ‚ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ‚Π΅, самата функция понякога трябва Π΄Π° бъдС ΠΎΠ³Ρ€Π°Π΄Π΅Π½Π° Π² скоби:

function test_func ($n) {}
test_func -eq $null     # функция Π½Π΅ Π²Ρ‹Π·Ρ‹Π²Π°Π»Π°ΡΡŒ
(test_func) -eq $null   # Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выраТСния β€” $true

Какво Π΅ Windows PowerShell ΠΈ с ΠΊΠ°ΠΊΠ²ΠΎ сС ядС? Част 2: Π’ΡŠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Π΅Π·ΠΈΠΊΠ° Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅

ΠšΠΎΠ³Π°Ρ‚ΠΎ описватС функция, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π·Π°Π΄Π°Π΄Π΅Ρ‚Π΅ стойности ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π½Π° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ‚Π΅:

function func ($arg = value) {
         #Ρ‚Π΅Π»ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ
}

Има Π΄Ρ€ΡƒΠ³ синтаксис Π·Π° описаниС Π½Π° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ‚Π΅ Π½Π° функцията, освСн Ρ‚ΠΎΠ²Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‚Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС Ρ‡Π΅Ρ‚Π°Ρ‚ ΠΎΡ‚ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Π° - всичко Ρ‚ΠΎΠ²Π° Ρ‰Π΅ бъдС ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π² слСдващата статия, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Ρ€Π°Π·Π³Π»Π΅ΠΆΠ΄Π°ΠΌΠ΅ СкспортиранитС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΈ създавамС наши собствСни ΠΊΡ€Π°Ρ‚ΠΊΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ.

Π“Ρ€Π΅ΡˆΠΊΠ° ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°

PowerShell ΠΈΠΌΠ° ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΡŠΠΌ Try...Catch...Finally Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ. Π‘Π»ΠΎΠΊΡŠΡ‚ Try ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° ΠΊΠΎΠ΄Π°, Π² ΠΊΠΎΠΉΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° възникнС Π³Ρ€Π΅ΡˆΠΊΠ°, Π° Π±Π»ΠΎΠΊΡŠΡ‚ Catch ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° своя ΠΌΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ‚ΠΎΡ€. Ако няма Π³Ρ€Π΅ΡˆΠΊΠ°, Π½Π΅ сС изпълнява. Π‘Π»ΠΎΠΊΡŠΡ‚ Finally сС изпълнява слСд Π±Π»ΠΎΠΊΠ° Try, нСзависимо ΠΎΡ‚ появата Π½Π° Π³Ρ€Π΅ΡˆΠΊΠ° ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ° няколко Π±Π»ΠΎΠΊΠ° Catch Π·Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π²ΠΈΠ΄ΠΎΠ²Π΅ ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ. Π‘Π°ΠΌΠΎΡ‚ΠΎ ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ сС записва Π² Π½Π΅Π΄Π΅ΠΊΠ»Π°Ρ€ΠΈΡ€Π°Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ ($_) ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΎ лСсно. Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΏΠΎ-Π΄ΠΎΠ»Ρƒ ΠΏΡ€ΠΈΠ»Π°Π³Π°ΠΌΠ΅ Π·Π°Ρ‰ΠΈΡ‚Π° срСщу въвСТданС Π½Π° Π½Π΅Π²Π°Π»ΠΈΠ΄Π½Π° стойност:

try {

        [int]$test = Read-Host "Π’Π²Π΅Π΄ΠΈΡ‚Π΅ число"
        100 / $test

} catch {

         Write-Warning "НСкоррСктноС число"
         Write-Host $_

}

Какво Π΅ Windows PowerShell ΠΈ с ΠΊΠ°ΠΊΠ²ΠΎ сС ядС? Част 2: Π’ΡŠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Π΅Π·ΠΈΠΊΠ° Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅

Π’ΠΎΠ²Π° Π·Π°Π²ΡŠΡ€ΡˆΠ²Π° ΠΏΡ€Π΅Π³Π»Π΅Π΄Π° Π½Π° основитС Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π΅Π·ΠΈΠΊΠ° PowerShell. Π’ слСдващитС статии Ρ‰Π΅ ΠΏΡ€ΠΎΡƒΡ‡ΠΈΠΌ ΠΏΠΎ-ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° с ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ ΠΎΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Ρ‚ΠΈΠΏΠΎΠ²Π΅, ΠΊΠΎΠ»Π΅ΠΊΡ†ΠΈΠΈ, рСгулярни ΠΈΠ·Ρ€Π°Π·ΠΈ, създаванС Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΈ потрСбитСлски cmdlets, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ ΠΎΠ±Π΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€Π°Π½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅.

Какво Π΅ Windows PowerShell ΠΈ с ΠΊΠ°ΠΊΠ²ΠΎ сС ядС? Част 2: Π’ΡŠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Π΅Π·ΠΈΠΊΠ° Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: www.habr.com

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€