ืžื” ื–ื” Windows PowerShell ื•ืขื ืžื” ืื•ื›ืœื™ื ืื•ืชื•? ื—ืœืง 2: ืžื‘ื•ื ืœืฉืคืช ื”ืชื›ื ื•ืช

ืžื‘ื—ื™ื ื” ื”ื™ืกื˜ื•ืจื™ืช, ื›ืœื™ ืขื–ืจ ืฉืœ ืฉื•ืจืช ื”ืคืงื•ื“ื” ื‘ืžืขืจื›ื•ืช Unix ืžืคื•ืชื—ื™ื ื™ื•ืชืจ ืžืืฉืจ ื‘-Windows, ืืš ืขื ื”ื•ืคืขืชื• ืฉืœ ืคืชืจื•ืŸ ื—ื“ืฉ, ื”ืžืฆื‘ ื”ืฉืชื ื”.

ืžื” ื–ื” Windows PowerShell ื•ืขื ืžื” ืื•ื›ืœื™ื ืื•ืชื•? ื—ืœืง 2: ืžื‘ื•ื ืœืฉืคืช ื”ืชื›ื ื•ืช

ื ื™ืชืŸ ืœื›ืชื•ื‘ ืืช PowerShell ื‘ืฉืคื” ืžืคื•ืจืฉืช, ืžืจื•ื‘ืช ืคืจื“ื™ื’ืžื•ืช, ื”ื›ื•ืœืœืช ืืœืžื ื˜ื™ื ืฉืœ ืชื›ื ื•ืช ืคืจื•ืฆื“ื•ืจืœื™ ืงืœืืกื™, ืžื•ื ื—ื” ืขืฆืžื™ื ื•ืืคื™ืœื• ืคื•ื ืงืฆื™ื•ื ืœื™: ื”ืกืชืขืคื•ืช ืžื•ืชื ื™ืช, ืœื•ืœืื•ืช, ืžืฉืชื ื™ื, ืžืขืจื›ื™ื, ื˜ื‘ืœืื•ืช ื’ื™ื‘ื•ื‘, ืžื—ืœืงื•ืช, ื˜ื™ืคื•ืœ ื‘ืฉื’ื™ืื•ืช, ื›ืžื• ื’ื ืคื•ื ืงืฆื™ื•ืช, cmdlets ื•ืฆื™ื ื•ืจื•ืช . ืžืืžืจ ืงื•ื“ื ื”ื•ืงื“ืฉ ืœื™ืกื•ื“ื•ืช ื”ืขื‘ื•ื“ื” ื‘ืกื‘ื™ื‘ื”, ื•ื›ืขืช ืื ื• ืžืฆื™ืขื™ื ืœืงื•ืจืื™ื ื• ืกืคืจ ืขื™ื•ืŸ ืงื˜ืŸ ืœืžืชื›ื ืชื™ื.

ืื•ืคืฆื™ื•ืช:

ืชื’ื•ื‘ื•ืช
ืžืฉืชื ื™ื ื•ืกื•ื’ื™ื”ื
ืžืฉืชื ื™ ืžืขืจื›ืช
ื”ื™ืงืคื™ื
ืžืฉืชื ื™ ืกื‘ื™ื‘ื” (ืกื‘ื™ื‘ื”)
ืื•ืคืจื˜ื•ืจื™ื ืฉืœ ื—ืฉื‘ื•ืŸ ื•ื”ืฉื•ื•ืื”
ืžืคืขื™ืœื™ ืžื˜ืœื•ืช
ืคืขื•ืœื•ืช ืœื•ื’ื™ื•ืช
ืงืคื™ืฆื” ืžื•ืชื ื™ืช
ืžื—ื–ื•ืจื™ื
ืžืขืจื›ื™ื
ื˜ื‘ืœืื•ืช ื—ืฉื™ืฉ
ืคื•ื ืงืฆื™ื•ืช
ืฉื’ื™ืื” ื‘ืขื™ื‘ื•ื“

ื ื™ืชืŸ ืœื›ืชื•ื‘ ืงื•ื“ ื‘ื›ืœ ืขื•ืจืš ื˜ืงืกื˜ ืื• ื‘ืืžืฆืขื•ืช ืกื‘ื™ื‘ืช ืคื™ืชื•ื— ืžืฉื•ืœื‘ืช - ื”ื“ืจืš ื”ืงืœื” ื‘ื™ื•ืชืจ ื”ื™ื ืœืงื—ืช ืืช Windows PowerShell ISE ืฉืžื’ื™ืข ืขื ืžืขืจื›ื•ืช ื”ื”ืคืขืœื” ืฉืœ ืฉืจืชื™ื ืฉืœ Microsoft. ื–ื” ื”ื›ืจื—ื™ ืจืง ืขื‘ื•ืจ ืกืงืจื™ืคื˜ื™ื ืžื•ืจื›ื‘ื™ื ืœืžื“ื™: ืงื‘ื•ืฆื•ืช ืงืฆืจื•ืช ืฉืœ ืคืงื•ื“ื•ืช ืงืœื•ืช ื™ื•ืชืจ ืœื‘ื™ืฆื•ืข ื‘ืื•ืคืŸ ืื™ื ื˜ืจืืงื˜ื™ื‘ื™.

ืชื’ื•ื‘ื•ืช

ื”ืฉื™ืžื•ืฉ ื‘ื”ืขืจื•ืช ื ื—ืฉื‘ ืœื—ืœืง ืžืกื’ื ื•ืŸ ืชื›ื ื•ืช ื˜ื•ื‘ ื™ื—ื“ ืขื ื”ื–ื—ื” ื•ืจื•ื•ื—ื™ื ืžืชืื™ืžื™ื:

# ะ”ะปั ัั‚ั€ะพั‡ะฝั‹ั… ะบะพะผะผะตะฝั‚ะฐั€ะธะตะฒ ะธัะฟะพะปัŒะทัƒะตั‚ัั ัะธะผะฒะพะป ั€ะตัˆะตั‚ะบะธ โ€” ัะพะดะตั€ะถะธะผะพะต ัั‚ั€ะพะบะธ ะธะฝั‚ะตั€ะฟั€ะตั‚ะฐั‚ะพั€ ะฝะต ะพะฑั€ะฐะฑะฐั‚ั‹ะฒะฐะตั‚.

<# 

       ะขะฐะบ ะพะฑะพะทะฝะฐั‡ะฐัŽั‚ัั ะฝะฐั‡ะฐะปะพ ะธ ะบะพะฝะตั† ะฑะปะพั‡ะฝะพะณะพ ะบะพะผะผะตะฝั‚ะฐั€ะธั. 
       ะ—ะฐะบะปัŽั‡ะตะฝะฝั‹ะน ะผะตะถะดัƒ ะฝะธะผะธ ั‚ะตะบัั‚ ะธะฝั‚ะตั€ะฟั€ะตั‚ะฐั‚ะพั€ ะธะณะฝะพั€ะธั€ัƒะตั‚.

#>

ืžืฉืชื ื™ื ื•ืกื•ื’ื™ื”ื

ืžืฉืชื ื™ื ื‘- PowerShell ื ืงืจืื™ื ืื•ื‘ื™ื™ืงื˜ื™ื. ื”ืฉืžื•ืช ืฉืœื”ื ื™ื›ื•ืœื™ื ืœื›ืœื•ืœ ืืช ืชื• ื”ืงื• ื”ืชื—ืชื•ืŸ, ื›ืžื• ื’ื ืื•ืชื™ื•ืช ื•ืžืกืคืจื™ื. ื”ืกืžืœ $ ืžืฉืžืฉ ืชืžื™ื“ ืœืคื ื™ ื”ืฉื, ื•ื›ื“ื™ ืœื”ื›ืจื™ื– ืขืœ ืžืฉืชื ื”, ืžืกืคื™ืง ืœืชืช ืœืžืชื•ืจื’ืžืŸ ืฉื ื—ื•ืงื™:

ืžื” ื–ื” Windows PowerShell ื•ืขื ืžื” ืื•ื›ืœื™ื ืื•ืชื•? ื—ืœืง 2: ืžื‘ื•ื ืœืฉืคืช ื”ืชื›ื ื•ืช

ื›ื“ื™ ืœืืชื—ืœ ืžืฉืชื ื” (ืœื”ืงืฆื•ืช ืœื• ืขืจืš), ื ืขืฉื” ืฉื™ืžื•ืฉ ื‘ืื•ืคืจื˜ื•ืจ ื”ื”ืงืฆืื” (ืกืžืœ =):

$test = 100

ืืชื” ื™ื›ื•ืœ ืœื”ื›ืจื™ื– ืขืœ ืžืฉืชื ื” ืขืœ ื™ื“ื™ ืฆื™ื•ืŸ ื”ืกื•ื’ ืฉืœื• ื‘ืกื•ื’ืจื™ื™ื ืžืจื•ื‘ืขื™ื (ืื•ืคืจื˜ื•ืจ ืœื™ื”ื•ืง ืกื•ื’) ืœืคื ื™ ื”ืฉื ืื• ื”ืขืจืš:

[int]$test = 100

$test = [int]100

ื—ืฉื•ื‘ ืœื”ื‘ื™ืŸ ืฉืžืฉืชื ื™ื ื‘-PowerShell ื”ื ืื•ื‘ื™ื™ืงื˜ื™ื (ืžื—ืœืงื•ืช) ืžืœืื™ื ืขื ืžืืคื™ื™ื ื™ื ื•ืฉื™ื˜ื•ืช ืฉื”ืกื•ื’ื™ื ืฉืœื”ื ืžื‘ื•ืกืกื™ื ืขืœ ืืœื• ืฉื‘-.NET Core. ืื ื• ืžืฆื™ื’ื™ื ืืช ื”ืขื™ืงืจื™ื™ื ืฉื‘ื”ื:

ืกื•ื’ (.NET class)

ืชื™ืื•ืจ

ื“ื•ื’ืžื” ืœืงื•ื“

[ืžื—ืจื•ื–ืช] System.String

ืžื—ืจื•ื–ืช Unicode 

$test = "ืžื‘ื—ืŸ"
$test = 'ืžื‘ื—ืŸ'

[char]System.Char

ืชื• Unicode (16 ืกื™ื‘ื™ื•ืช)

[char]$test = 'c'

[bool] System.Boolean

ืกื•ื’ ื‘ื•ืœื™ืื ื™ (ื‘ื•ืœื™ืื ื™ ื ื›ื•ืŸ ืื• ืœื ื ื›ื•ืŸ)

[bool]$test = $true

[int] System.Int32

ืžืกืคืจ ืฉืœื ืฉืœ ืฉืœื•ืฉื™ื ื•ืฉืชื™ื™ื ืกื™ื‘ื™ื•ืช (32 ืกื™ื‘ื™ื•ืช)

[int]$test = 123456789

[ืืจื•ืš] System.Int64

ืžืกืคืจ ืฉืœื ืฉืœ ืฉื™ืฉื™ื ื•ืืจื‘ืข ืกื™ื‘ื™ื•ืช (64 ืกื™ื‘ื™ื•ืช)

[long]$test = 12345678910

[ืกื™ื ื’ืœ] ืžืขืจื›ืช.ืกื™ื ื’ืœ

ื ืงื•ื“ื” ืฆืคื” ืžืกืคืจ ื‘ืื•ืจืš 32 ื‘ื™ื˜ื™ื

[Single]$test = 12345.6789

[ื›ืคื•ืœ]System.Double

ืžืกืคืจ ื ืงื•ื“ื” ืฆืคื” ื‘ืื•ืจืš 64 ืกื™ื‘ื™ื•ืช (8 ื‘ืชื™ื)

[double]$test = 123456789.101112

[ืขืฉืจื•ื ื™]ืžืขืจื›ืช.ืขืฉืจื•ื ื™ืช

ืžืกืคืจ ื ืงื•ื“ื” ืฆืคื” ืฉืœ 128 ืกื™ื‘ื™ื•ืช (ื ื“ืจืฉ ืœื”ืกืชื™ื™ื ื‘-d)

[ืขืฉืจื•ื ื™]$test = 12345.6789d

[DateTime]System.DateTime

ืชืืจื™ืš ื•ืฉืขื” 

$test = GetDate

[ืžืขืจืš] System.Object[]

ืžืขืจืš ืฉืžื“ื“ ื”ืืœืžื ื˜ื™ื ืฉืœื• ืžืชื—ื™ืœ ื‘-0

$test_array = 1, 2, "test", 3, 4

[hashtable] System.Collections.Hashtable

ื˜ื‘ืœืื•ืช hash ื”ืŸ ืžืขืจื›ื™ื ืืกื•ืฆื™ืื˜ื™ื‘ื™ื™ื ืขื ืžืคืชื—ื•ืช ื‘ืขืœื™ ืฉื, ืฉื ื‘ื ื• ืขืœ ืคื™ ื”ืขื™ืงืจื•ืŸ: @{key = "value"}

$test_hashtable = @{one="one"; two="two"; three="three"}

PowerShell ืชื•ืžืš ื‘ื”ืžืจืช ืกื•ื’ ืžืจื•ืžื–, ื‘ื ื•ืกืฃ, ื ื™ืชืŸ ืœืฉื ื•ืช ืืช ืกื•ื’ ื”ืžืฉืชื ื” ืชื•ืš ื›ื“ื™ (ืœื“ื•ื’ืžื”, ื‘ืืžืฆืขื•ืช ืื•ืคืจื˜ื•ืจ ื”ืงืฆืื”), ืื ื”ื•ื ืœื ืžืฆื•ื™ืŸ ื‘ื›ื•ื— - ื‘ืžืงืจื” ื–ื”, ื”ืžืชื•ืจื’ืžืŸ ื™ื™ืชืŸ ืฉื’ื™ืื”. ืืชื” ื™ื›ื•ืœ ืœืงื‘ื•ืข ืืช ืกื•ื’ ื”ืžืฉืชื ื” ืžื”ื“ื•ื’ืžื” ื”ืงื•ื“ืžืช ืขืœ ื™ื“ื™ ืงืจื™ืื” ืœืฉื™ื˜ืช GetType():

$test.GetType().FullName

ืžื” ื–ื” Windows PowerShell ื•ืขื ืžื” ืื•ื›ืœื™ื ืื•ืชื•? ื—ืœืง 2: ืžื‘ื•ื ืœืฉืคืช ื”ืชื›ื ื•ืช

ื™ืฉื ื ืžืกืคืจ cmdlets ืœืžื ื™ืคื•ืœืฆื™ื” ืฉืœ ืžืฉืชื ื™ื. ื”ืจืฉื™ืžื” ืฉืœื”ื ื‘ืฆื•ืจื” ื ื•ื—ื” ืžื•ืฆื’ืช ื‘ืืžืฆืขื•ืช ื”ืคืงื•ื“ื”:

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

ืžื” ื–ื” Windows PowerShell ื•ืขื ืžื” ืื•ื›ืœื™ื ืื•ืชื•? ื—ืœืง 2: ืžื‘ื•ื ืœืฉืคืช ื”ืชื›ื ื•ืช

ื›ื“ื™ ืœื”ืฆื™ื’ ืžืฉืชื ื™ื ืžื•ืฆื”ืจื™ื ื•ื”ืขืจื›ื™ื ืฉืœื”ื, ืืชื” ื™ื›ื•ืœ ืœื”ืฉืชืžืฉ ื‘-cmdlet ืžื™ื•ื—ื“:

Get-Variable | more

ืฉื™ื˜ื” ื–ื• ื ืจืื™ืช ืžืกื•ืจื‘ืœืช ืžื“ื™, ื”ืจื‘ื” ื™ื•ืชืจ ื ื•ื— ืœืขื‘ื•ื“ ืขื ืžืฉืชื ื™ื ื“ืจืš ืื•ืคืจื˜ื•ืจื™ื ืื• ืขืœ ื™ื“ื™ ื’ื™ืฉื” ื™ืฉื™ืจื” ืœืžืืคื™ื™ื ื™ื ื•ืœืฉื™ื˜ื•ืช ืฉืœื”ื. ืขื ื–ืืช, ืœ-cmdlets ื™ืฉ ื–ื›ื•ืช ืงื™ื•ื ืžื›ื™ื•ื•ืŸ ืฉื”ื ืžืืคืฉืจื™ื ืœืš ืœื”ื’ื“ื™ืจ ื›ืžื” ืคืจืžื˜ืจื™ื ื ื•ืกืคื™ื. ื—ืฉื•ื‘ ืœื”ื‘ื™ืŸ ืฉืžืฉืชื ื™ ืžืฉืชืžืฉ ืžื•ื’ื“ืจื™ื ืจืง ื‘ืชื•ืš ื”ื”ืคืขืœื” ื”ื ื•ื›ื—ื™ืช. ื›ืฉื”ืžืกื•ืฃ ื ืกื’ืจ ืื• ืฉื”ืกืงืจื™ืคื˜ ืžืกืชื™ื™ื, ื”ื ื ืžื—ืงื™ื.

ืžืฉืชื ื™ ืžืขืจื›ืช

ื‘ื ื•ืกืฃ ืœืืœื• ื”ืžื•ืฆื”ืจื™ื ืขืœ ื™ื“ื™ ื”ืžืฉืชืžืฉ, ื™ืฉื ื ืžืฉืชื ื™ื ืžื•ื‘ื ื™ื (ืžืขืจื›ืชื™ื™ื) ืฉืื™ื ื ื ืžื—ืงื™ื ืœืื—ืจ ืกื™ื•ื ื”ืคื’ื™ืฉื” ื”ื ื•ื›ื—ื™ืช. ื”ื ืžื—ื•ืœืงื™ื ืœืฉื ื™ ืกื•ื’ื™ื, ื‘ืขื•ื“ ืฉื ืชื•ื ื™ ืžืฆื‘ PowerShell ืžืื•ื—ืกื ื™ื ื‘ืžืฉืชื ื™ื ืื•ื˜ื•ืžื˜ื™ื™ื ืฉืœื ื ื™ืชืŸ ืœื”ืงืฆื•ืช ืœื”ื ืขืจื›ื™ื ืฉืจื™ืจื•ืชื™ื™ื ื‘ืขืฆืžื. ืืœื” ื›ื•ืœืœื™ื, ืœืžืฉืœ, $PWD:

$PWD.Path

ืžื” ื–ื” Windows PowerShell ื•ืขื ืžื” ืื•ื›ืœื™ื ืื•ืชื•? ื—ืœืง 2: ืžื‘ื•ื ืœืฉืคืช ื”ืชื›ื ื•ืช

ื™ืฉ ืฆื•ืจืš ื‘ืžืฉืชื ื™ ื”ืขื“ืคื” ื›ื“ื™ ืœืื—ืกืŸ ื”ืขื“ืคื•ืช ืžืฉืชืžืฉ, ืฉืืช ืขืจื›ื™ื”ืŸ ื ื™ืชืŸ ืœืฉื ื•ืช. ืœื“ื•ื’ืžื”, ื‘ืืžืฆืขื•ืช $ErrorActionPreference, ื ืงื‘ืขืช ื”ืชื’ื•ื‘ื” ืฉืœ ืžืชื•ืจื’ืžืŸ ื”ืคืงื•ื“ื•ืช ืœื”ืชืจื—ืฉื•ืช ืฉืœ ืฉื’ื™ืื•ืช ืœื ืงื˜ืœื ื™ื•ืช.

ื‘ื ื•ืกืฃ ืœืื•ืคืจื˜ื•ืจื™ื ื•-cmdletื™ื ืœื’ื™ืฉื” ืœืžืฉืชื ื™ื ืžื•ืฆื”ืจื™ื, ื™ืฉื ื• Variable: pseudo-accumulator. ืืชื” ื™ื›ื•ืœ ืœืขื‘ื•ื“ ืื™ืชื• ื‘ืื ืœื•ื’ื™ื” ืขื ื›ื•ื ื ื™ื ืื—ืจื™ื, ื•ื”ืžืฉืชื ื™ื ื‘ืžืงืจื” ื–ื” ื“ื•ืžื™ื ืœืื•ื‘ื™ื™ืงื˜ื™ื ืฉืœ ืžืขืจื›ืช ืงื‘ืฆื™ื:

Get-ChildItem Variable: | more

ืื•

ls Variable: | more

ืžื” ื–ื” Windows PowerShell ื•ืขื ืžื” ืื•ื›ืœื™ื ืื•ืชื•? ื—ืœืง 2: ืžื‘ื•ื ืœืฉืคืช ื”ืชื›ื ื•ืช

ื”ื™ืงืคื™ื

ืขื‘ื•ืจ ืžืฉืชื ื™ื ื‘-PowerShell, ื™ืฉ ืืช ื”ืจืขื™ื•ืŸ ืฉืœ scope (Scope). ื”ืคืขื•ืœื” ืฉืœ ื”ื”ื™ืงืฃ ื”ื’ืœื•ื‘ืœื™ (Global) ื—ืœื” ืขืœ ื›ืœ ื”ืคื’ื™ืฉื” ื”ื ื•ื›ื—ื™ืช - ื”ื™ื ื›ื•ืœืœืช, ืœืžืฉืœ, ืžืฉืชื ื™ ืžืขืจื›ืช. ืžืฉืชื ื™ื ืžืงื•ืžื™ื™ื (ืžืงื•ืžื™ื™ื) ื–ืžื™ื ื™ื ืจืง ื‘ื”ื™ืงืฃ ืฉื‘ื• ื”ื ื”ื•ื’ื“ืจื•: ื ื ื™ื— ื‘ืชื•ืš ืคื•ื ืงืฆื™ื”. ื™ืฉ ื’ื ืืช ื”ืจืขื™ื•ืŸ ืฉืœ ื”ื™ืงืฃ ื”ืชืกืจื™ื˜ (ืกืงืจื™ืคื˜), ืื‘ืœ ืขื‘ื•ืจ ืคืงื•ื“ื•ืช ืกืงืจื™ืคื˜, ื–ื” ื‘ืขืฆื ืžืงื•ืžื™. ื›ื‘ืจื™ืจืช ืžื—ื“ืœ, ื‘ืขืช ื”ืฆื”ืจืช ืžืฉืชื ื™ื, ื”ื ืžืงื‘ืœื™ื ื”ื™ืงืฃ ืžืงื•ืžื™, ื•ื›ื“ื™ ืœืฉื ื•ืช ื–ืืช, ืืชื” ืฆืจื™ืš ืžื‘ื ื” ืžื™ื•ื—ื“ ื›ืžื•: $Global: ืžืฉืชื ื” = ืขืจืš.

ืœื“ื•ื’ืžื”, ื›ืš:

$Global:test = 100

ืžืฉืชื ื™ ืกื‘ื™ื‘ื” (ืกื‘ื™ื‘ื”)

ื›ื•ื ืŸ ืคืกืื•ื“ื• ื ื•ืกืฃ, Env:, ื–ืžื™ืŸ ืž-PowerShell ื•ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ื• ื›ื“ื™ ืœื’ืฉืช ืœืžืฉืชื ื™ ืกื‘ื™ื‘ื”. ื›ืืฉืจ ื”ืžืขื˜ืคืช ืžืชื—ื™ืœื”, ื”ื ืžื•ืขืชืงื™ื ืžืชื”ืœื™ืš ื”ืื‘ (ื›ืœื•ืžืจ, ืžื”ืชื•ื›ื ื™ืช ืฉื™ื–ืžื” ืืช ื”ื”ืคืขืœื” ื”ื ื•ื›ื—ื™ืช) ื•ื‘ื“ืจืš ื›ืœืœ ื”ืขืจื›ื™ื ื”ื”ืชื—ืœืชื™ื™ื ืฉืœื”ื ื–ื”ื™ื ืœืขืจื›ื™ื ื‘ืœื•ื— ื”ื‘ืงืจื”. ื›ื“ื™ ืœื”ืฆื™ื’ ืžืฉืชื ื™ ืกื‘ื™ื‘ื”, ื”ืฉืชืžืฉ ื‘-cmdlet Get-ChildItem ืื• ื‘ื›ื™ื ื•ื™ื™ื ืฉืœื• (ื›ื™ื ื•ื™ื™ื): ls ื•-dir.

dir Env:

ืžื” ื–ื” Windows PowerShell ื•ืขื ืžื” ืื•ื›ืœื™ื ืื•ืชื•? ื—ืœืง 2: ืžื‘ื•ื ืœืฉืคืช ื”ืชื›ื ื•ืช

ืžืฉืชื ื™ื ืืœื” ื”ื ืจืฆืคื™ื ืฉืœ ื‘ืชื™ื (ืื• ืชื•ื•ื™ื, ืื ืชืจืฆื•), ืฉื”ืคื™ืจื•ืฉ ืฉืœื”ื ืชืœื•ื™ ืจืง ื‘ืชื•ื›ื ื™ืช ื”ืžืฉืชืžืฉืช ื‘ื”ื. ื”-cmdlets *-Variable ืœื ืขื•ื‘ื“ื™ื ืขื ืžืฉืชื ื™ ืกื‘ื™ื‘ื”. ื›ื“ื™ ืœื’ืฉืช ืืœื™ื”ื, ืขืœื™ืš ืœื”ืฉืชืžืฉ ื‘ืงื™ื“ื•ืžืช ื”ื›ื•ื ืŸ:

$env:TEST = "Hello, World!"

ืžื” ื–ื” Windows PowerShell ื•ืขื ืžื” ืื•ื›ืœื™ื ืื•ืชื•? ื—ืœืง 2: ืžื‘ื•ื ืœืฉืคืช ื”ืชื›ื ื•ืช

ืื•ืคืจื˜ื•ืจื™ื ืฉืœ ื—ืฉื‘ื•ืŸ ื•ื”ืฉื•ื•ืื”

PowerShell ืžืกืคืงืช ืืช ื”ืื•ืคืจื˜ื•ืจื™ื ื”ืืจื™ืชืžื˜ื™ื™ื ื”ื‘ืื™ื: + (ื—ื™ื‘ื•ืจ), - (ื—ื™ืกื•ืจ), * (ื›ืคืœ), / (ื—ืœื•ืงื”) ื•-% (ืžื•ื“ื•ืœื• ืื• ืžื•ื“ื•ืœ). ื”ืชื•ืฆืื” ืฉืœ ื‘ื™ื˜ื•ื™ ืืจื™ืชืžื˜ื™ ืžื•ืขืจื›ืช ืžืฉืžืืœ ืœื™ืžื™ืŸ ื‘ื”ืชืื ืœืกื“ืจ ื”ืคืขื•ืœื•ืช ื”ืžืงื•ื‘ืœ, ื•ืกื•ื’ืจื™ื™ื ืžืฉืžืฉื™ื ืœืงื™ื‘ื•ืฅ ื—ืœืงื™ื ืžื”ื‘ื™ื˜ื•ื™. ืžืชืขืœืžื™ื ืžืจื•ื•ื—ื™ื ื‘ื™ืŸ ืื•ืคืจื˜ื•ืจื™ื, ื”ื ืžืฉืžืฉื™ื ืจืง ื›ื“ื™ ืœื”ืงืœ ืขืœ ื”ืงืจื™ืื”. ื’ื ื”ืื•ืคืจื˜ื•ืจ + ืžืฉืจืฉืจ, ื•ื”ืื•ืคืจื˜ื•ืจ * ื—ื•ื–ืจ ืขืœ ืžื—ืจื•ื–ื•ืช. ืื ืชื ืกื” ืœื”ื•ืกื™ืฃ ืžืกืคืจ ืœืžื—ืจื•ื–ืช, ื”ื•ื ื™ื•ืžืจ ืœืžื—ืจื•ื–ืช. ื‘ื ื•ืกืฃ, ืœืฉืคืช PowerShell ื™ืฉ ืื•ืคืจื˜ื•ืจื™ื ืจื‘ื™ื ืœื”ืฉื•ื•ืื” ื”ื‘ื•ื“ืงื™ื ื”ืชืืžื” ื‘ื™ืŸ ืฉื ื™ ืขืจื›ื™ื ื•ืžื—ื–ื™ืจื™ื ืืช ื”ืขืจืš ื”ื‘ื•ืœืœื™ ืฉืœ True ืื• False:

ืžืคืขื™ืœ

ืชื™ืื•ืจ

ื“ื•ื’ืžื” ืœืงื•ื“

-eq

ืฉื•ื•ื” / ืฉื•ื•ื” (ื‘ื“ื•ืžื” ืœ-= ืื• == ื‘ืฉืคื•ืช ืื—ืจื•ืช)

$test = 100
$test -eq 123 

-ื ื”

ืœื ืฉื•ื•ื” / ืœื ืฉื•ื•ื” (ื‘ื“ื•ืžื” ืœ<> ืื• !=)

$test = 100
$test -ne 123   

-ื’ืž '

ื’ื“ื•ืœ ืž/ื™ื•ืชืจ (ืื ืœื•ื’ื™ >)

$test = 100
$test -gt 123

-ge

ื’ื“ื•ืœ ืž- ืื• ืฉื•ื•ื” / ื’ื“ื•ืœ ืž- ืื• ืฉื•ื•ื” (ื‘ื“ื•ืžื” ืœ->=)

$test = 100
$test -ge 123

-ืœื˜

ืคื—ื•ืช ืž/ืคื—ื•ืช (ื‘ื“ื•ืžื” ืœ<)

$test = 100
$test -lt 123  

-ืœื”

ืคื—ื•ืช ืื• ืฉื•ื•ื” / ืคื—ื•ืช ืื• ืฉื•ื•ื” (ื‘ื“ื•ืžื” ืœ-<=)

$test = 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 TILL, FOR ื•- FOREACH.

ืœื•ืœืื” ืขื ืชื ืื™ ืžื•ืงื“ื ืคื•ืขืœืช ืื/ื›ืœ ืขื•ื“ ื”ื™ื ื ื›ื•ื ื”:

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

ืœื•ืœืื•ืช ืขื postcondition ื™ืคืขืœื• ืœืคื—ื•ืช ืคืขื ืื—ืช, ืžื›ื™ื•ื•ืŸ ืฉื”ืชื ืื™ ื ื‘ื“ืง ืœืื—ืจ ื”ืื™ื˜ืจืฆื™ื”. ื‘ืžืงื‘ื™ืœ, DO WHILE ืคื•ืขืœ ื‘ื–ืžืŸ ืฉื”ืชื ืื™ ื”ื•ื ืืžื™ืชื™, ื•-DO TILL ืคื•ืขืœ ื›ืืฉืจ ื”ื•ื ืฉืงืจ:

[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) ืื• ืœืงื‘ืœ ืคืจื•ืกื” (ืคืจื•ืกื”), ื›ืœื•ืžืจ. ืจืฆืฃ ืฉืœ ืืœืžื ื˜ื™ื ืžืžืขืจืš ืื—ื“ ืขื ืžื“ื“ื™ื ืžืžืขืจืš ืื—ืจ. ื‘ืžืงืจื” ื–ื”, ืžืกืคืจ ืฉืœื™ืœื™ -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 ื”ื ื˜ื‘ืœืื•ืช hash, ื”ื™ื“ื•ืข ื’ื ื‘ืชื•ืจ ืžืขืจื›ื™ื ืืกื•ืฆื™ืื˜ื™ื‘ื™ื™ื. ื˜ื‘ืœืื•ืช Hashtable ื“ื•ืžื•ืช ืœืื•ื‘ื™ื™ืงื˜ื™ JSON ื•ื‘ื ื•ื™ื™ื ืขืœ ื‘ืกื™ืก ืžืคืชื—-ืขืจืš. ื‘ื ื™ื’ื•ื“ ืœืžืขืจื›ื™ื ืจื’ื™ืœื™ื, ื”ื’ื™ืฉื” ืœืืœืžื ื˜ื™ื ืฉืœื”ื ืžืชื‘ืฆืขืช ื‘ืืžืฆืขื•ืช ืžืคืชื—ื•ืช ื‘ืขืœื™ ืฉื, ืฉื”ื ืžืืคื™ื™ื ื™ื ืฉืœ ื”ืื•ื‘ื™ื™ืงื˜ (ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื’ื ื‘ืื•ืคืจื˜ื•ืจ ื”ืื™ื ื“ืงืก - ืกื•ื’ืจื™ื™ื ืžืจื•ื‘ืขื™ื).

ื˜ื‘ืœืช ื’ื™ื‘ื•ื‘ ืจื™ืงื” ืžื•ื›ืจื–ืช ื‘ืืžืฆืขื•ืช ื”ืกืžืœ @ ื•ืกื•ื’ืจื™ื™ื ืฉืœ ืื•ืคืจื˜ื•ืจ:

$test_hashtable = @{}

ื‘ืขืช ื”ื”ืฆื”ืจื”, ืืชื” ื™ื›ื•ืœ ืžื™ื“ ืœื™ืฆื•ืจ ืžืคืชื—ื•ืช ื•ืœื”ืงืฆื•ืช ืœื”ื ืขืจื›ื™ื:

$test_hashtable = @{one="ะพะดะธะฝ"; two="ะดะฒะฐ"; three="ั‚ั€ะธ"; "some key"="some value"}

ื›ื“ื™ ืœื”ื•ืกื™ืฃ ืืœืžื ื˜ ืœื˜ื‘ืœืช hash, ืขืœื™ืš ืœื”ืงืฆื•ืช ืœื• ืžืคืชื— ืฉืขื“ื™ื™ืŸ ืœื ืงื™ื™ื, ืื• ืœื”ืฉืชืžืฉ ื‘ืฉื™ื˜ืช Add () . ืื ืžืชื‘ืฆืขืช ื”ืงืฆืื” ืœืžืคืชื— ืงื™ื™ื, ืขืจื›ื• ื™ืฉืชื ื”. ื”ืฉื™ื˜ื” Remove() ืžืฉืžืฉืช ืœื”ืกืจืช ืืœืžื ื˜ ืžื˜ื‘ืœืช hash.

$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: ืžื‘ื•ื ืœืฉืคืช ื”ืชื›ื ื•ืช

ื ื™ืชืŸ ืœื”ืขื‘ื™ืจ ืžืฉืชื ื™ื ืžืกื•ื’ ื–ื” ื›ืืจื’ื•ืžื ื˜ื™ื ืœืคื•ื ืงืฆื™ื•ืช ื•-cmdlet - ื‘ืžืืžืจ ื”ื‘ื ื ืœืžื“ ื›ื™ืฆื“ ื–ื” ื ืขืฉื”, ื•ื ื‘ื—ืŸ ื’ื ืกื•ื’ ื“ื•ืžื” ื ื•ืกืฃ - PSCustomObject.

ืคื•ื ืงืฆื™ื•ืช

ืœ-PowerShell ื™ืฉ ืืช ื›ืœ ืžื” ืฉืืชื” ืฆืจื™ืš ืขื‘ื•ืจ ืชื›ื ื•ืช ืคืจื•ืฆื“ื•ืจืœื™, ื›ื•ืœืœ ืคื•ื ืงืฆื™ื•ืช. ื›ื“ื™ ืœืชืืจ ืื•ืชื, ืžืฉืชืžืฉื™ื ื‘ืžื™ืœืช ื”ืคื•ื ืงืฆื™ื” Function, ืฉืœืื—ืจื™ื” ืฆืจื™ืš ืœืฆื™ื™ืŸ ืืช ืฉื ื”ืคื•ื ืงืฆื™ื” ื•ืืช ื”ื’ื•ืฃ ื”ืžื•ืงืฃ ื‘ืกื•ื’ืจื™ื™ื ืฉืœ ืžืคืขื™ืœ. ืื ืืชื” ืฆืจื™ืš ืœื”ืขื‘ื™ืจ ืืจื’ื•ืžื ื˜ื™ื ืœืคื•ื ืงืฆื™ื”, ืืชื” ื™ื›ื•ืœ ืœืฆื™ื™ืŸ ืื•ืชื ืžื™ื“ ืื—ืจื™ ื”ืฉื ื‘ืกื•ื’ืจื™ื™ื.

function ะธะผั-ั„ัƒะฝะบั†ะธะธ (ะฐั€ะณัƒะผะตะฝั‚1, ..., ะฐั€ะณัƒะผะตะฝั‚N) 
{ 
        ั‚ะตะปะพ-ั„ัƒะฝะบั†ะธะธ 
} 

ื”ืคื•ื ืงืฆื™ื” ืชืžื™ื“ ืžื—ื–ื™ืจื” ืชื•ืฆืื” - ื”ื™ื ืžืขืจืš ืฉืœ ื”ืชื•ืฆืื•ืช ืฉืœ ื›ืœ ื”ื”ืฆื”ืจื•ืช ืฉืœื”, ืื ื™ืฉ ื™ื•ืชืจ ืžืื—ืช. ืื ื™ืฉ ืจืง ืžืฉืคื˜ ืื—ื“, ื”ืขืจืš ื”ื™ื—ื™ื“ ืžื”ืกื•ื’ ื”ืžืชืื™ื ืžื•ื—ื–ืจ. ื”ืžื‘ื ื” ืฉืœ ื”ื—ื–ืจ $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) {
         #ั‚ะตะปะพ ั„ัƒะฝะบั†ะธะธ
}

ื™ืฉื ื• ืชื—ื‘ื™ืจ ื ื•ืกืฃ ืœืชื™ืื•ืจ ืืจื’ื•ืžื ื˜ื™ื ืฉืœ ืคื•ื ืงืฆื™ื•ืช, ื‘ื ื•ืกืฃ, ื ื™ืชืŸ ืœืงืจื•ื ืคืจืžื˜ืจื™ื ืžื”-pipeline - ื›ืœ ื–ื” ื™ื”ื™ื” ืฉื™ืžื•ืฉื™ ื‘ืžืืžืจ ื”ื‘ื, ื›ืืฉืจ ื ืกืชื›ืœ ืขืœ ืžื•ื“ื•ืœื™ื ืžื™ื•ืฆืื™ื ื•ื™ื•ืฆืจื™ื cmdlets ืžืฉืœื ื•.

ืฉื’ื™ืื” ื‘ืขื™ื‘ื•ื“

ืœ-PowerShell ื™ืฉ ืžื ื’ื ื•ืŸ Try...Catch...ืกื•ืฃ ืกื•ืฃ ืœื”ืชืžื•ื“ื“ ืขื ื—ืจื™ื’ื™ื. ื‘ืœื•ืง ื”-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

ื”ื•ืกืคืช ืชื’ื•ื‘ื”