Какво Π΅ 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)

ОписаниС

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

[string]
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

[long]
System.Int64

Цяло число с 64 Π±ΠΈΡ‚Π° (ΡˆΠ΅ΡΡ‚Π΄Π΅ΡΠ΅Ρ‚ ΠΈ Ρ‡Π΅Ρ‚ΠΈΡ€ΠΈ разрядно)

[long]$test = 12345678910

[single]
System.Single

Число с ΠΏΠ»Π°Π²Π°Ρ‰Π° запСтая с 32 Π±ΠΈΡ‚Π°

[single]$test = 12345.6789

[double]
System.Double

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

[double]$test = 123456789.101112

[decimal]
System.Decimal

число с ΠΏΠ»Π°Π²Π°Ρ‰Π° запСтая с дълТина 128 Π±ΠΈΡ‚Π° (Π·Π°Π΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΎ ΡƒΠΊΠ°ΠΆΠ΅Ρ‚Π΅ d Π² края)

[decimal]$test = 12345.6789d

[DateTime]
System.DateTime

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

$test = Get-Date

[array]
System.Object[]

массив, ΠΈΠ½Π΄Π΅ΠΊΡΡŠΡ‚ Π½Π° Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ‚Π΅ Π·Π°ΠΏΠΎΡ‡Π²Π° ΠΎΡ‚ 0

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

[hashtable]
System.Collections.Hashtable

Ρ…Π΅Ρˆ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ β€” асоциативни масиви с ΠΈΠΌΠ΅Π½ΡƒΠ²Π°Π½ΠΈ ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅, построСни ΠΏΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°: @{ΠΊΠ»ΡŽΡ‡ = "стойност"}

$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 сС Π·Π°Π΄Π°Π²Π° рСакцията Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π° Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ ΠΏΡ€ΠΈ възникванС Π½Π° Π½Π΅ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ.

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

Get-ChildItem Variable: | more

ΠΈΠ»ΠΈ

ls Variable: | more

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

ΠžΠ±Π»Π°ΡΡ‚ΠΈ Π½Π° видимост

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

НапримСр, Ρ‚Π°ΠΊΠ°:

$Global:test = 100

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

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

dir Env:

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

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

$env:TEST = "Hello, World!"

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

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

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

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

ОписаниС

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

-eq

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

$test = 100
$test -eq 123Β 

-ne

НС Π΅ Ρ€Π°Π²Π½ΠΎ / НС Ρ€Π°Π²Π½ΠΎ (Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ Π½Π° ΠΈΠ»ΠΈ !=)

$test = 100
$test -ne 123Β Β Β 

-gt

По-голямо / По-голямо (Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ Π½Π° >)

$test = 100
$test -gt 123

-ge

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

$test = 100
$test -ge 123

-lt

По-ΠΌΠ°Π»ΠΊΠΎ / По-ΠΌΠ°Π»ΠΊΠΎ (Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ Π½Π° <)

$test = 100
$test -lt 123Β Β 

-le

По-ΠΌΠ°Π»ΠΊΠΎ ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ / По-ΠΌΠ°Π»ΠΊΠΎ ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ (Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ Π½Π° <=)

$test = 100
$test -le 123

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

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

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

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

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

("ВСст" -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  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 β€” Ρ…Π΅Ρˆ-Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΡΡŠΡ‰ΠΎ сС Π½Π°Ρ€ΠΈΡ‡Π°Ρ‚ асоциативни масиви. Hashtable ΠΏΡ€ΠΈΠ»ΠΈΡ‡Π°Ρ‚ Π½Π° 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("Ρ‡Π΅Ρ‚ΠΈΡ€ΠΈ", "Ρ‡Π΅Ρ‚ΠΈΡ€ΠΈ")
$test_hashtable.five = "ΠΏΠ΅Ρ‚"
$test_hashtable['five'] = "промСнямС стойността"
$test_hashtable.Remove("Π΅Π΄ΠΈΠ½")

Какво Π΅ 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 ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π·Π°Π²ΡŠΡ€ΡˆΠΈΠΌ. Π’ слСдващитС статии Ρ‰Π΅ изслСдвамС ΠΏΠΎ-ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° с ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ ΠΎΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Ρ‚ΠΈΠΏΠΎΠ²Π΅, ΠΊΠΎΠ»Π΅ΠΊΡ†ΠΈΠΈ, рСгулярни ΠΈΠ·Ρ€Π°Π·ΠΈ, създаванС Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΈ собствСни ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ‚ΠΈ, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ ΠΎΠ±Π΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€Π°Π½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅.

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

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

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster