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

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

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

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