ืืืืื ื ืืืกืืืจืืช, ืืื ืขืืจ ืฉื ืฉืืจืช ืืคืงืืื ืืืขืจืืืช Unix ืืคืืชืืื ืืืชืจ ืืืฉืจ ื-Windows, ืื ืขื ืืืคืขืชื ืฉื ืคืชืจืื ืืืฉ, ืืืฆื ืืฉืชื ื.
ื ืืชื ืืืชืื ืืช PowerShell ืืฉืคื ืืคืืจืฉืช, ืืจืืืช ืคืจืืืืืืช, ืืืืืืช ืืืื ืืื ืฉื ืชืื ืืช ืคืจืืฆืืืจืื ืงืืืกื, ืืื ืื ืขืฆืืื ืืืคืืื ืคืื ืงืฆืืื ืื: ืืกืชืขืคืืช ืืืชื ืืช, ืืืืืืช, ืืฉืชื ืื, ืืขืจืืื, ืืืืืืช ืืืืื, ืืืืงืืช, ืืืคืื ืืฉืืืืืช, ืืื ืื ืคืื ืงืฆืืืช, cmdlets ืืฆืื ืืจืืช .
ืืืคืฆืืืช:
ื ืืชื ืืืชืื ืงืื ืืื ืขืืจื ืืงืกื ืื ืืืืฆืขืืช ืกืืืืช ืคืืชืื ืืฉืืืืช - ืืืจื ืืงืื ืืืืชืจ ืืื ืืงืืช ืืช Windows PowerShell ISE ืฉืืืืข ืขื ืืขืจืืืช ืืืคืขืื ืฉื ืฉืจืชืื ืฉื Microsoft. ืื ืืืจืื ืจืง ืขืืืจ ืกืงืจืืคืืื ืืืจืืืื ืืืื: ืงืืืฆืืช ืงืฆืจืืช ืฉื ืคืงืืืืช ืงืืืช ืืืชืจ ืืืืฆืืข ืืืืคื ืืื ืืจืืงืืืื.
ืชืืืืืช
ืืฉืืืืฉ ืืืขืจืืช ื ืืฉื ืืืืง ืืกืื ืื ืชืื ืืช ืืื ืืื ืขื ืืืื ืืจืืืืื ืืชืืืืื:
# ะะปั ัััะพัะฝัั
ะบะพะผะผะตะฝัะฐัะธะตะฒ ะธัะฟะพะปัะทัะตััั ัะธะผะฒะพะป ัะตัะตัะบะธ โ ัะพะดะตัะถะธะผะพะต ัััะพะบะธ ะธะฝัะตัะฟัะตัะฐัะพั ะฝะต ะพะฑัะฐะฑะฐััะฒะฐะตั.
<#
ะขะฐะบ ะพะฑะพะทะฝะฐัะฐัััั ะฝะฐัะฐะปะพ ะธ ะบะพะฝะตั ะฑะปะพัะฝะพะณะพ ะบะพะผะผะตะฝัะฐัะธั.
ะะฐะบะปััะตะฝะฝัะน ะผะตะถะดั ะฝะธะผะธ ัะตะบัั ะธะฝัะตัะฟัะตัะฐัะพั ะธะณะฝะพัะธััะตั.
#>
ืืฉืชื ืื ืืกืืืืื
ืืฉืชื ืื ื- PowerShell ื ืงืจืืื ืืืืืืงืืื. ืืฉืืืช ืฉืืื ืืืืืื ืืืืื ืืช ืชื ืืงื ืืชืืชืื, ืืื ืื ืืืชืืืช ืืืกืคืจืื. ืืกืื $ ืืฉืืฉ ืชืืื ืืคื ื ืืฉื, ืืืื ืืืืจืื ืขื ืืฉืชื ื, ืืกืคืืง ืืชืช ืืืชืืจืืื ืฉื ืืืงื:
ืืื ืืืชืื ืืฉืชื ื (ืืืงืฆืืช ืื ืขืจื), ื ืขืฉื ืฉืืืืฉ ืืืืคืจืืืจ ืืืงืฆืื (ืกืื =):
$test = 100
ืืชื ืืืื ืืืืจืื ืขื ืืฉืชื ื ืขื ืืื ืฆืืื ืืกืื ืฉืื ืืกืืืจืืื ืืจืืืขืื (ืืืคืจืืืจ ืืืืืง ืกืื) ืืคื ื ืืฉื ืื ืืขืจื:
[int]$test = 100
$test = [int]100
ืืฉืื ืืืืื ืฉืืฉืชื ืื ื-PowerShell ืื ืืืืืืงืืื (ืืืืงืืช) ืืืืื ืขื ืืืคืืื ืื ืืฉืืืืช ืฉืืกืืืื ืฉืืื ืืืืกืกืื ืขื ืืื ืฉื-.NET Core. ืื ื ืืฆืืืื ืืช ืืขืืงืจืืื ืฉืืื:
ืกืื (.NET class)
ืชืืืืจ
ืืืืื ืืงืื
[ืืืจืืืช] System.Stringืืืจืืืช Unicode
$test = "ืืืื"
$test = 'ืืืื'
ืชื 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
ืืฉื ื ืืกืคืจ cmdlets ืืื ืืคืืืฆืื ืฉื ืืฉืชื ืื. ืืจืฉืืื ืฉืืื ืืฆืืจื ื ืืื ืืืฆืืช ืืืืฆืขืืช ืืคืงืืื:
Get-Command -Noun Variable | ft -Property Name, Definition -AutoSize -Wrap
ืืื ืืืฆืื ืืฉืชื ืื ืืืฆืืจืื ืืืขืจืืื ืฉืืื, ืืชื ืืืื ืืืฉืชืืฉ ื-cmdlet ืืืืื:
Get-Variable | more
ืฉืืื ืื ื ืจืืืช ืืกืืจืืืช ืืื, ืืจืื ืืืชืจ ื ืื ืืขืืื ืขื ืืฉืชื ืื ืืจื ืืืคืจืืืจืื ืื ืขื ืืื ืืืฉื ืืฉืืจื ืืืืคืืื ืื ืืืฉืืืืช ืฉืืื. ืขื ืืืช, ื-cmdlets ืืฉ ืืืืช ืงืืื ืืืืืื ืฉืื ืืืคืฉืจืื ืื ืืืืืืจ ืืื ืคืจืืืจืื ื ืืกืคืื. ืืฉืื ืืืืื ืฉืืฉืชื ื ืืฉืชืืฉ ืืืืืจืื ืจืง ืืชืื ืืืคืขืื ืื ืืืืืช. ืืฉืืืกืืฃ ื ืกืืจ ืื ืฉืืกืงืจืืคื ืืกืชืืื, ืื ื ืืืงืื.
ืืฉืชื ื ืืขืจืืช
ืื ืืกืฃ ืืืื ืืืืฆืืจืื ืขื ืืื ืืืฉืชืืฉ, ืืฉื ื ืืฉืชื ืื ืืืื ืื (ืืขืจืืชืืื) ืฉืืื ื ื ืืืงืื ืืืืจ ืกืืื ืืคืืืฉื ืื ืืืืืช. ืื ืืืืืงืื ืืฉื ื ืกืืืื, ืืขืื ืฉื ืชืื ื ืืฆื PowerShell ืืืืืกื ืื ืืืฉืชื ืื ืืืืืืืืื ืฉืื ื ืืชื ืืืงืฆืืช ืืื ืขืจืืื ืฉืจืืจืืชืืื ืืขืฆืื. ืืื ืืืืืื, ืืืฉื, $PWD:
$PWD.Path
ืืฉ ืฆืืจื ืืืฉืชื ื ืืขืืคื ืืื ืืืืกื ืืขืืคืืช ืืฉืชืืฉ, ืฉืืช ืขืจืืืื ื ืืชื ืืฉื ืืช. ืืืืืื, ืืืืฆืขืืช $ErrorActionPreference, ื ืงืืขืช ืืชืืืื ืฉื ืืชืืจืืื ืืคืงืืืืช ืืืชืจืืฉืืช ืฉื ืฉืืืืืช ืื ืงืืื ืืืช.
ืื ืืกืฃ ืืืืคืจืืืจืื ื-cmdletืื ืืืืฉื ืืืฉืชื ืื ืืืฆืืจืื, ืืฉื ื Variable: pseudo-accumulator. ืืชื ืืืื ืืขืืื ืืืชื ืืื ืืืืื ืขื ืืื ื ืื ืืืจืื, ืืืืฉืชื ืื ืืืงืจื ืื ืืืืื ืืืืืืืงืืื ืฉื ืืขืจืืช ืงืืฆืื:
Get-ChildItem Variable: | more
ืื
ls Variable: | more
ืืืงืคืื
ืขืืืจ ืืฉืชื ืื ื-PowerShell, ืืฉ ืืช ืืจืขืืื ืฉื scope (Scope). ืืคืขืืื ืฉื ืืืืงืฃ ืืืืืืื (Global) ืืื ืขื ืื ืืคืืืฉื ืื ืืืืืช - ืืื ืืืืืช, ืืืฉื, ืืฉืชื ื ืืขืจืืช. ืืฉืชื ืื ืืงืืืืื (ืืงืืืืื) ืืืื ืื ืจืง ืืืืงืฃ ืฉืื ืื ืืืืืจื: ื ื ืื ืืชืื ืคืื ืงืฆืื. ืืฉ ืื ืืช ืืจืขืืื ืฉื ืืืงืฃ ืืชืกืจืื (ืกืงืจืืคื), ืืื ืขืืืจ ืคืงืืืืช ืกืงืจืืคื, ืื ืืขืฆื ืืงืืื. ืืืจืืจืช ืืืื, ืืขืช ืืฆืืจืช ืืฉืชื ืื, ืื ืืงืืืื ืืืงืฃ ืืงืืื, ืืืื ืืฉื ืืช ืืืช, ืืชื ืฆืจืื ืืื ื ืืืืื ืืื: $Global: ืืฉืชื ื = ืขืจื.
ืืืืืื, ืื:
$Global:test = 100
ืืฉืชื ื ืกืืืื (ืกืืืื)
ืืื ื ืคืกืืืื ื ืืกืฃ, Env:, ืืืื ื-PowerShell ืื ืืชื ืืืฉืชืืฉ ืื ืืื ืืืฉืช ืืืฉืชื ื ืกืืืื. ืืืฉืจ ืืืขืืคืช ืืชืืืื, ืื ืืืขืชืงืื ืืชืืืื ืืื (ืืืืืจ, ืืืชืืื ืืช ืฉืืืื ืืช ืืืคืขืื ืื ืืืืืช) ืืืืจื ืืื ืืขืจืืื ืืืชืืืชืืื ืฉืืื ืืืื ืืขืจืืื ืืืื ืืืงืจื. ืืื ืืืฆืื ืืฉืชื ื ืกืืืื, ืืฉืชืืฉ ื-cmdlet Get-ChildItem ืื ืืืื ืืืื ืฉืื (ืืื ืืืื): ls ื-dir.
dir Env:
ืืฉืชื ืื ืืื ืื ืจืฆืคืื ืฉื ืืชืื (ืื ืชืืืื, ืื ืชืจืฆื), ืฉืืคืืจืืฉ ืฉืืื ืชืืื ืจืง ืืชืืื ืืช ืืืฉืชืืฉืช ืืื. ื-cmdlets *-Variable ืื ืขืืืืื ืขื ืืฉืชื ื ืกืืืื. ืืื ืืืฉืช ืืืืื, ืขืืื ืืืฉืชืืฉ ืืงืืืืืช ืืืื ื:
$env:TEST = "Hello, World!"
ืืืคืจืืืจืื ืฉื ืืฉืืื ืืืฉืืืื
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]
ืืคืขืื ..
(ืฉืชื ื ืงืืืืช - ืืืคืจืืืจ ืืืื) ืืืืืจ ืืขืจื ืฉื ืืกืคืจืื ืฉืืืื ืืชืื ืืืืื ืืขืืืื ืืืชืืชืื ืฉืฆืืื ื. ืืืืืื, ืืืืื 1..4 ืืืฆืื ืืขืจื ืฉื ืืจืืขื ืืืื ืืื @(1, 2, 3, 4), ืืืืืื 8..5 ืืืฆืื ืืขืจื @(8, 7, 6, 5).
ืืืืฆืขืืช ืืืคืจืืืจ ืืืืื, ื ืืชื ืืืชืื ืืขืจื ($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 ืืืืืจ.
ื-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")
ื ืืชื ืืืขืืืจ ืืฉืชื ืื ืืกืื ืื ืืืจืืืื ืืื ืืคืื ืงืฆืืืช ื-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
ืืขืช ืชืืืืจ ืคืื ืงืฆืื, ืืชื ืืืื ืืืงืฆืืช ืขืจืื ืืจืืจืช ืืืื ืืืจืืืื ืืื:
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 $_
}
ืืื ืืกืชืืืืช ืืกืงืืจื ืฉื ืืกืืืืช ืืชืื ืืช ืืฉืคืช PowerShell. ืืืืืจืื ืืืืื, ื ืืื ืืืชืจ ืคืืจืื ืขืืืื ืขื ืืฉืชื ืื ืืกืืืื ืฉืื ืื, ืืืกืคืื, ืืืืืืื ืจืืืืจืืื, ืืฆืืจืช ืคืื ืงืฆืืืช, ืืืืืืื ื-cmdlets ืืืชืืืื ืืืฉืืช, ืืื ืื ืชืื ืืช ืืื ืื ืขืฆืืื.
ืืงืืจ: www.habr.com