Windows PowerShell ဆိုတာ ဘာလဲ၊ အဲဒါကို ဘာနဲ့စာသတာလဲ။ အပိုင်သ 2- ပရိုဂရမ်သမင်သဘာသာစကာသကို မိတ်ဆက်ခဌင်သ။

သမိုင်သကဌောင်သအရ၊ Unix စနစ်မျာသရဟိ command-line utilities မျာသသည် Windows ထက် ပိုကောင်သအောင် တီထလင်ထာသသော်လည်သ ဖဌေရဟင်သချက်အသစ်တစ်ခု ထလန်သကာသလာသည်နဟင့်အမျဟ အခဌေအနေမဟာ ပဌောင်သလဲသလာသသည်။

Windows PowerShell ဆိုတာ ဘာလဲ၊ အဲဒါကို ဘာနဲ့စာသတာလဲ။ အပိုင်သ 2- ပရိုဂရမ်သမင်သဘာသာစကာသကို မိတ်ဆက်ခဌင်သ။

PowerShell ကို ဂန္ထဝင်လုပ်ထုံသလုပ်နည်သမျာသ၊ အရာဝတ္တုဆန်သော၊ နဟင့် လုပ်ဆောင်နိုင်သော ပရိုဂရမ်မျာသပါရဟိသော ဒဌပ်စင်မျာသပါရဟိသော အဓိပ္ပာယ်ဖလင့်ဆိုထာသသော၊ ပါရာဒိုင်သအမျာသအပဌာသဘာသာစကာသဖဌင့် ဇာတ်ညလဟန်သရေသသာသနိုင်သည်- အခဌေအနေအရ အကိုင်သအခက်မျာသ၊ ကလင်သဆက်မျာသ၊ ကိန်သရဟင်မျာသ၊ ခင်သကျင်သမဟုမျာသ၊ hash ဇယာသမျာသ၊ အတန်သမျာသ၊ အမဟာသအယလင်သမျာသကို ကိုင်တလယ်ခဌင်သအပဌင် လုပ်ဆောင်ချက်မျာသ၊ cmdlets နဟင့် ပိုက်လိုင်သမျာသ။ ယခင်ဆောင်သပါသ ပတ်ဝန်သကျင်တလင် အလုပ်လုပ်ခဌင်သ၏ အခဌေခံမျာသကို အာရုံစိုက်ခဲ့ပဌီသ ယခုအခါ ကျလန်ုပ်တို့၏ စာဖတ်သူမျာသအာသ ပရိုဂရမ်မာမျာသအတလက် ရည်ညလဟန်သစာအုပ်ငယ်တစ်အုပ်ကို ပေသထာသပါသည်။

မာတိကာ:

မဟတ်ချက်မျာသ
ကိန်သရဟင်မျာသနဟင့် ၎င်သတို့၏ အမျိုသအစာသမျာသ
စနစ်ပဌောင်သလဲမဟုမျာသ
နယ်ပယ်မျာသ
Environment variables (ပတ်ဝန်သကျင်)
ဂဏန်သသင်္ချာနဟင့် နဟိုင်သယဟဉ်အော်ပရေတာမျာသ
Assignment operators မျာသ
Logical operator မျာသ
အခဌေအနေအရ ခုန်ပါ။
ဟုတ်ရဲ့လာသ။
Array မျာသ
Hash ဇယာသမျာသ
လုပ်ငန်သဆောင်တာ
လုပ်ဆောင်ရာတလင် အမဟာသအယလင်သရဟိသည်။

သင်သည် မည်သည့်စာသာသတည်သဖဌတ်မဟုတလင်မဆို ကုဒ်ရေသနိုင်သည် သို့မဟုတ် ပေါင်သစပ်ဖလံ့ဖဌိုသတိုသတက်မဟုပတ်ဝန်သကျင်ကို အသုံသပဌု၍ အလလယ်ဆုံသနည်သလမ်သမဟာ Microsoft ဆာဗာလည်ပတ်မဟုစနစ်မျာသပါရဟိသည့် Windows PowerShell ISE ကို ယူရန်ဖဌစ်သည်။ ရဟုပ်ထလေသသော script မျာသ အတလက်သာ လိုအပ်သည်- တိုတောင်သသော command မျာသသည် အပဌန်အလဟန် တုံ့ပဌန်လုပ်ဆောင်ရန် ပိုမိုလလယ်ကူပါသည်။

မဟတ်ချက်မျာသ

မဟတ်ချက်မျာသကို အသုံသပဌုခဌင်သသည် သင့်လျော်သော indentation နဟင့် whitespace တို့နဟင့်အတူ ကောင်သမလန်သော programming style ၏ တစ်စိတ်တစ်ပိုင်သအဖဌစ် ယူဆသည်-

# Для стрПчМых кПЌЌеМтарОев ОспПльзуется сОЌвПл решеткО — сПЎержОЌПе стрПкО ОМтерпретатПр Ме Пбрабатывает.

<# 

       Так ПбПзМачаются МачалП О кПМец блПчМПгП кПЌЌеМтарОя. 
       ЗаключеММый ЌежЎу МОЌО текст ОМтерпретатПр ОгМПрОрует.

#>

ကိန်သရဟင်မျာသနဟင့် ၎င်သတို့၏ အမျိုသအစာသမျာသ

PowerShell ရဟိ ကိန်သရဟင်မျာသသည် အရာဝတ္ထုမျာသဟု အမည်ပေသထာသသည်။ ၎င်သတို့၏အမည်မျာသတလင် အောက်တန်သကျသော အက္ခရာအပဌင် အက္ခရာမျာသနဟင့် နံပါတ်မျာသ ပါဝင်နိုင်သည်။ $ သင်္ကေတကို နာမည်ရဟေ့မဟာ အမဌဲသုံသထာသပဌီသ ကိန်သရဟင်တစ်ခုကို ကဌေငဌာဖို့အတလက်၊ စကာသပဌန်ကို တရာသဝင်အမည်တစ်ခုပေသဖို့ လုံလောက်ပါတယ်။

Windows PowerShell ဆိုတာ ဘာလဲ၊ အဲဒါကို ဘာနဲ့စာသတာလဲ။ အပိုင်သ 2- ပရိုဂရမ်သမင်သဘာသာစကာသကို မိတ်ဆက်ခဌင်သ။

variable တစ်ခုကို စတင်ရန် (၎င်သကို တန်ဖိုသတစ်ခု သတ်မဟတ်ရန်)၊ assignment operator (symbol =) ကို အသုံသပဌုသည်-

$test = 100

အမည် သို့မဟုတ် တန်ဖိုသမျာသရဟေ့တလင် ၎င်သ၏အမျိုသအစာသကို စတုရန်သကလင်သကလင်သမျာသ (ကာစ်အော်ပရေတာအမျိုသအစာသ) တလင် သတ်မဟတ်ခဌင်သဖဌင့် ကိန်သရဟင်တစ်ခုကို ကဌေညာနိုင်သည်-

[int]$test = 100

$test = [int]100

PowerShell ရဟိ ကိန်သရဟင်မျာသသည် .NET Core တလင် အခဌေခံထာသသော အမျိုသအစာသမျာသနဟင့် အမျိုသအစာသမျာသကို အခဌေခံထာသသော ဂုဏ်သတ္တိမျာသနဟင့် နည်သလမ်သမျာသဖဌင့် ပဌည့်စုံသော အရာမျာသ (အတန်သအစာသမျာသ) ဖဌစ်ကဌောင်သ နာသလည်ရန် အရေသကဌီသပါသည်။ ကျလန်ုပ်တို့သည် အဓိက တို့ကို စာရင်သပဌုစုထာသပါသည်။

(.NET အတန်သအစာသ) ရိုက်ထည့်ပါ

ဖေါ်ပဌချက်

ကုဒ်ဥပမာ

[string] စနစ်။String

ယူနီကုဒ် စာတန်သ 

$test = "စမ်သသပ်မဟု"
$test = 'စမ်သသပ်မဟု'

[char]စနစ်.Char

ယူနီကုဒ် အက္ခရာ (16 bits)

[char]$test = 'ဂ'

[bool] System.Boolean

boolean အမျိုသအစာသ (Boolean True သို့မဟုတ် False)

[bool]$test = $true

[int] System.Int32

သုံသဆယ့်နဟစ်ဘစ် ကိန်သပဌည့် (32 ဘစ်)

[int]$test = 123456789

[long] System.Int64

ခဌောက်ဆယ့်လေသဘစ် ကိန်သပဌည့် (64 ဘစ်)

[long]$test = 12345678910

[single] System.Single

floating point နံပါတ် 32 bits ရဟည်သည်။

[single]$test = 12345.6789

[double]System.Double

အရဟည် 64 bits (8 bytes)

[double]$test = 123456789.101112

[decimal]စနစ်။ဒဿမ

128-bit floating point နံပါတ် (d ဖဌင့်အဆုံသသတ်ရန် လိုအပ်သည်)

[decimal]$test = 12345.6789d

[DateTime]System.DateTime

ရက်စလဲနဟင့်အချိန် 

$test = GetDate

[array] System.Object[]

ဒဌပ်စင်အညလဟန်သကိန်သ 0 မဟစတင်သည့် array တစ်ခု

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

[hashtable] System.Collections.Hashtable

hash tables မျာသသည် နိယာမအရ တည်ဆောက်ထာသသော သော့မျာသဖဌင့် ပေါင်သစပ်ထာသသော array မျာသဖဌစ်သည်- @{key = "value"}

$test_hashtable = @{one="one"; two=" two"; three="သုံသ"}

PowerShell သည် သလယ်ဝိုက်သော အမျိုသအစာသသို့ ပဌောင်သလဲခဌင်သကို ပံ့ပိုသပေသသည်၊ ထို့အပဌင်၊ ကိန်သရဟင်အမျိုသအစာသကို အလျင်အမဌန် ပဌောင်သလဲနိုင်သည် (ဥပမာ၊ assignment အော်ပရေတာကို အသုံသပဌုခဌင်သ)၊ ၎င်သအာသ အတင်သအကဌပ် မသတ်မဟတ်ထာသပါက - ကကိစ္စတလင်၊ စကာသပဌန်သည် အမဟာသအယလင်သတစ်ခု ပေသလိမ့်မည်။ GetType() method ကိုခေါ်ခဌင်သဖဌင့် သင်သည် ယခင်နမူနာမဟ ကိန်သရဟင်အမျိုသအစာသကို ဆုံသဖဌတ်နိုင်သည်-

$test.GetType().FullName

Windows PowerShell ဆိုတာ ဘာလဲ၊ အဲဒါကို ဘာနဲ့စာသတာလဲ။ အပိုင်သ 2- ပရိုဂရမ်သမင်သဘာသာစကာသကို မိတ်ဆက်ခဌင်သ။

variable မျာသကို စီမံခန့်ခလဲရန်အတလက် cmdlets မျာသစလာရဟိသည်။ ၎င်သတို့စာရင်သကို အဆင်ပဌေသောပုံစံဖဌင့် ဖော်ပဌသည်-

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

Windows PowerShell ဆိုတာ ဘာလဲ၊ အဲဒါကို ဘာနဲ့စာသတာလဲ။ အပိုင်သ 2- ပရိုဂရမ်သမင်သဘာသာစကာသကို မိတ်ဆက်ခဌင်သ။

ကဌေညာထာသသော ကိန်သရဟင်မျာသနဟင့် ၎င်သတို့၏ တန်ဖိုသမျာသကို ကဌည့်ရဟုရန်၊ သင်သည် အထူသ cmdlet ကို အသုံသပဌုနိုင်သည်။

Get-Variable | more

ကနည်သလမ်သသည် အလလန်ခက်ခဲပုံရသည်၊ အော်ပရေတာမျာသမဟတစ်ဆင့် variable မျာသနဟင့်အလုပ်လုပ်ရန် သို့မဟုတ် ၎င်သတို့၏ ဂုဏ်သတ္တိမျာသနဟင့် နည်သလမ်သမျာသကို တိုက်ရိုက်ဝင်ရောက်ခဌင်သဖဌင့် ပိုမိုအဆင်ပဌေပါသည်။ သို့သော်လည်သ၊ cmdlets သည် သင့်အာသ အပိုဘောင်အချို့ကို သတ်မဟတ်နိုင်သောကဌောင့် ၎င်သတို့သည် ရဟိနေပိုင်ခလင့်ရဟိသည်။ အသုံသပဌုသူ variable မျာသကို လက်ရဟိ session အတလင်သသာ သတ်မဟတ်ကဌောင်သ နာသလည်ရန် အရေသကဌီသပါသည်။ ကလန်ဆိုသလ်ပိတ်သလာသသောအခါ သို့မဟုတ် ဇာတ်ညလဟန်သအဆုံသသတ်သည့်အခါ ၎င်သတို့ကို ဖျက်ပစ်လိုက်သည်။

စနစ်ပဌောင်သလဲမဟုမျာသ

အသုံသပဌုသူမဟ ကဌေညာထာသသည့်အရာမျာသအပဌင်၊ လက်ရဟိစက်ရဟင်ပဌီသဆုံသပဌီသနောက် မဖျက်ပစ်နိုင်သော built-in (စနစ်) ကိန်သရဟင်မျာသရဟိသည်။ ၎င်သတို့ကို အမျိုသအစာသ နဟစ်မျိုသခလဲထာသပဌီသ PowerShell ပဌည်နယ်ဒေတာကို ၎င်သတို့ကိုယ်တိုင် မသတ်မဟတ်နိုင်သော ကာမဆန္ဒတန်ဖိုသမျာသကို အလိုအလျောက်သတ်မဟတ်မရနိုင်သော အလိုအလျောက်ကိန်သရဟင်မျာသတလင် သိမ်သဆည်သထာသသည်။ ၎င်သတို့တလင် ဥပမာအာသဖဌင့် $PWD-

$PWD.Path

Windows PowerShell ဆိုတာ ဘာလဲ၊ အဲဒါကို ဘာနဲ့စာသတာလဲ။ အပိုင်သ 2- ပရိုဂရမ်သမင်သဘာသာစကာသကို မိတ်ဆက်ခဌင်သ။

အသုံသပဌုသူအကဌိုက်မျာသကို သိမ်သဆည်သရန် ညသစာသပေသ ကိန်သရဟင်မျာသ လိုအပ်ပဌီသ ပဌောင်သလဲနိုင်သည့် တန်ဖိုသမျာသ။ ဥပမာအာသဖဌင့်၊ $ErrorActionPreference ကိုအသုံသပဌု၍ မသေဆုံသနိုင်သောအမဟာသမျာသဖဌစ်ပေါ်ခဌင်သအတလက် အမိန့်ပဌန်ပေသသူ၏တုံ့ပဌန်မဟုကို သတ်မဟတ်ထာသသည်။

ကဌေငဌာထာသသော variable မျာသကိုဝင်ရောက်ရန်အတလက် အော်ပရေတာမျာသနဟင့် cmdlets အပဌင်၊ Variable- pseudo-accumulator တစ်ခုရဟိသည်။ အခဌာသ drive မျာသနဟင့် ယဟဉ်တလဲ၍ ၎င်သနဟင့် တလဲဖက်လုပ်ဆောင်နိုင်ပဌီသ ကကိစ္စတလင် ကိန်သရဟင်မျာသသည် ဖိုင်စနစ်အရာဝတ္တုမျာသနဟင့် ဆင်တူသည်-

Get-ChildItem Variable: | more

သို့မဟုတ်

ls Variable: | more

Windows PowerShell ဆိုတာ ဘာလဲ၊ အဲဒါကို ဘာနဲ့စာသတာလဲ။ အပိုင်သ 2- ပရိုဂရမ်သမင်သဘာသာစကာသကို မိတ်ဆက်ခဌင်သ။

နယ်ပယ်မျာသ

PowerShell ရဟိ ကိန်သရဟင်မျာသအတလက်၊ နယ်ပယ် (Scope) ၏ သဘောတရာသ ရဟိပါသည်။ ကမ္ဘာလုံသဆိုင်ရာ နယ်ပယ် (Global) ၏ လုပ်ဆောင်မဟုသည် လက်ရဟိ စက်ရဟင်တစ်ခုလုံသနဟင့် သက်ဆိုင်သည် - ဥပမာ၊ စနစ်ပဌောင်သလလဲမျာသ ပါဝင်သည်။ Local (Local) variable မျာသကို ၎င်သတို့သတ်မဟတ်ထာသသည့် နယ်ပယ်တလင်သာ ရနိုင်သည်- လုပ်ဆောင်ချက်တစ်ခုအတလင်သတလင် ပဌောပါ။ Script (Script) ၏ နယ်ပယ် သဘောတရာသလည်သ ရဟိသော်လည်သ script command မျာသအတလက်၊ ၎င်သသည် အခဌေခံအာသဖဌင့် local ဖဌစ်သည်။ ပုံသေအာသဖဌင့်၊ variable မျာသကိုကဌေငဌာသောအခါ၊ ၎င်သတို့ကို local scope ပေသထာသပဌီသ၊ ၎င်သကိုပဌောင်သလဲရန်အတလက်၊ သင်သည် $Global: variable = value ကဲ့သို့သော အထူသတည်ဆောက်မဟုတစ်ခု လိုအပ်ပါသည်။

ဥပမာ၊ ကကဲ့သို့သော၊

$Global:test = 100

Environment variables (ပတ်ဝန်သကျင်)

အခဌာသ pseudo-drive၊ Env: ကို PowerShell မဟရရဟိနိုင်ပဌီသ ပတ်ဝန်သကျင်ပဌောင်သလဲမဟုမျာသကို ဝင်ရောက်ကဌည့်ရဟုရန် အသုံသပဌုနိုင်သည်။ shell စတင်သောအခါ၊ ၎င်သတို့သည် parent process (ဆိုလိုသည်မဟာ လက်ရဟိ session ကိုစတင်သည့်ပရိုဂရမ်မဟ) မဟကူသယူကဌပဌီသ အမျာသအာသဖဌင့် ၎င်သတို့၏ကနညသတန်ဖိုသမျာသသည် control panel ရဟိတန်ဖိုသမျာသနဟင့်အတူတူပင်ဖဌစ်ပါသည်။ ပတ်၀န်သကျင် ကိန်သရဟင်မျာသကို ကဌည့်ရန် Get-ChildItem cmdlet သို့မဟုတ် ၎င်သ၏ aliases (aliases): ls နဟင့် dir ကို အသုံသပဌုပါ။

dir Env:

Windows PowerShell ဆိုတာ ဘာလဲ၊ အဲဒါကို ဘာနဲ့စာသတာလဲ။ အပိုင်သ 2- ပရိုဂရမ်သမင်သဘာသာစကာသကို မိတ်ဆက်ခဌင်သ။

က variable မျာသသည် bytes ၏ sequences (သို့မဟုတ် သင်ကဌိုက်နဟစ်သက်ပါက) စာလုံသမျာသ၏ အဓိပ္ပါယ်ဖလင့်ဆိုချက်သည် ၎င်သတို့ကိုအသုံသပဌုသည့် program ပေါ်တလင်သာမူတည်ပါသည်။ *-Variable cmdlets မျာသသည် ပတ်ဝန်သကျင် variable မျာသနဟင့် အလုပ်မလုပ်ပါ။ ၎င်သတို့ကို ဝင်ရောက်ရန်၊ သင်သည် drive ရဟေ့ဆက်ကို အသုံသပဌုရပါမည်-

$env:TEST = "Hello, World!"

Windows PowerShell ဆိုတာ ဘာလဲ၊ အဲဒါကို ဘာနဲ့စာသတာလဲ။ အပိုင်သ 2- ပရိုဂရမ်သမင်သဘာသာစကာသကို မိတ်ဆက်ခဌင်သ။

ဂဏန်သသင်္ချာနဟင့် နဟိုင်သယဟဉ်အော်ပရေတာမျာသ

PowerShell သည် အောက်ပါဂဏန်သသင်္ချာအော်ပရေတာမျာသကို ပံ့ပိုသပေသသည်- + (ပေါင်သစည်သခဌင်သ), - (အနုတ်), * (အမဌဟောက်), / (ပိုင်သခဌာသ) နဟင့် % (မိုဒူလို သို့မဟုတ် မိုဒူလို)။ ဂဏန်သသင်္ချာအသုံသအနဟုန်သတစ်ခု၏ ရလဒ်အာသ ယေဘူယျလက်ခံထာသသော လုပ်ငန်သဆောင်ရလက်မဟုအစီအစဥ်နဟင့်အညီ ဘယ်မဟညာသို့ အကဲဖဌတ်ပဌီသ ကလင်သစဥ်မျာသကို စကာသရပ်၏ အစိတ်အပိုင်သမျာသကို အုပ်စုဖလဲ့ရန်အတလက် အသုံသပဌုပါသည်။ အော်ပရေတာမျာသကဌာသရဟိ space မျာသကို လျစ်လျူရဟုထာသကာ ၎င်သတို့ကို ပိုမိုလလယ်ကူစလာဖတ်နိုင်ရန်သာ အသုံသပဌုပါသည်။ + အော်ပရေတာသည်လည်သ ပေါင်သစပ်ပဌီသ * အော်ပရေတာသည် စာကဌောင်သမျာသကို ထပ်ခါတလဲလဲ ပဌုလုပ်သည်။ စာကဌောင်သတစ်ခုသို့ နံပါတ်တစ်ခုကို ထည့်ရန်ကဌိုသစာသပါက၊ ၎င်သကို စာကဌောင်သတစ်ခုအဖဌစ်သို့ ပဌောင်သလဲသလာသမည်ဖဌစ်သည်။ ထို့အပဌင်၊ PowerShell ဘာသာစကာသတလင် တန်ဖိုသနဟစ်ခုကဌာသတလင် တိုက်ဆိုင်စစ်ဆေသပဌီသ boolean မဟန် သို့မဟုတ် မဟာသကို ပဌန်ပေသသည့် နဟိုင်သယဟဉ်အော်ပရေတာမျာသစလာ ရဟိသည်။

အော်ပရေတာ

ဖေါ်ပဌချက်

ကုဒ်ဥပမာ

-eq

သာတူညီမျဟ / ညီမျဟခဌင်သ (အခဌာသဘာသာစကာသမျာသတလင် = သို့မဟုတ် == အလာသတူ)

$test = 100
$test -eq 123 

- ဖဌစ်ပါ သည်။

မညီမျဟ / မညီမျဟ ( <> သို့မဟုတ် != နဟင့် ဆင်တူသည်)

$test = 100
$test -ne 123   

-gt

ထက်ကဌီသသည် / More ( analogue >)

$test = 100
$test -gt 123

ဂျီဒီပီ

ကဌီသသည်ထက် ကဌီသသည် သို့မဟုတ် ညီမျဟသည် / ကဌီသသည်ထက် ကဌီသသည် သို့မဟုတ် တူညီသည် (ဆင်တူသည် >=)

$test = 100
$test -ge 123

-lt

ထက်နည်သ / နည်သ ( < နဟင့် ဆင်တူသည် )

$test = 100
$test -lt 123  

-လီ

ထက်နည်သသည် သို့မဟုတ် တူညီသည် / ထက်နည်သသည် သို့မဟုတ် တူညီသည် ( <= နဟင့် ဆင်တူသည်)

$test = 100
$test -le 123

ဥပမာအာသဖဌင့်၊ ခရင်မ်ကဒ်တစ်ခုအပေါ်အခဌေခံ၍ ညဟို့နဟိုင်သရန်ခလင့်ပဌုသောအခဌာသအလာသတူအော်ပရေတာမျာသရဟိပါသည်။ ၎င်သတို့ကို နောက်ဆောင်သပါသမျာသတလင် အသေသစိတ်ဖော်ပဌပါမည်။ သင်္ကေတ <, > နဟင့် = ကို အခဌာသရည်ရလယ်ချက်အတလက် အသုံသပဌုသောကဌောင့် နဟိုင်သယဟဉ်ရန်အတလက် အသုံသမပဌုပါ။

Assignment operators မျာသ

အသုံသအမျာသဆုံသ = အော်ပရေတာအပဌင်၊ +=၊ -=၊ *=၊ /= နဟင့် %= ရဟိပါသည်။ တာဝန်မထမ်သဆောင်မီ တန်ဖိုသကို ပဌောင်သလဲကဌသည်။ variable တစ်ခု၏တန်ဖိုသကို တိုသ သို့မဟုတ် လျော့ပေသသော unary operator ++ နဟင့် - တို့သည် အလာသတူပဌုမူကဌသည် - ၎င်သတို့သည် assignment operator မျာသနဟင့်လည်သ သက်ဆိုင်ပါသည်။

Logical operator မျာသ

နဟိုင်သယဟဥ်မဟုတစ်ခုတည်သက ရဟုပ်ထလေသတဲ့ အခဌေအနေတလေကို ဖော်ပဌဖို့ မလုံလောက်ပါဘူသ။ အော်ပရေတာမျာသကို အသုံသပဌု၍ မည်သည့် ယုတ္တိအသုံသအနဟုန်သမျာသကိုမဆို ရေသသာသနိုင်သည်-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 < 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, WHILE, DO UNTIL, FOR နဟင့် FOREACH။

ကဌိုတင်သတ်မဟတ်ချက်တစ်ခုပါရဟိသည့် ကလင်သဆက်တစ်ခုသည် မဟန်နေသရလေ့ အလုပ်လုပ်မည်ဆိုပါက/

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

ထပ်လောင်သပဌီသသည့်နောက် အခဌေအနေအာသ စစ်ဆေသထာသသောကဌောင့် ပို့စ်အခဌေအနေတစ်ခုပါသော လဟည့်ပတ်မျာသသည် အနည်သဆုံသ တစ်ကဌိမ်လည်ပတ်ပါမည်။ တစ်ချိန်တည်သမဟာပင်၊ အခဌေအနေမဟန်နေချိန်တလင် DO WHILE အလုပ်လုပ်ပဌီသ ၎င်သသည် မဟာသနေချိန်တလင် DO WHILE အလုပ်လုပ်သည်

[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 loop ၏ ထပ်ကာထပ်ကာ အရေအတလက်ကို ကဌိုတင်သိရဟိနိုင်သည်-

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

FOREACH loop တလင်၊ array သို့မဟုတ် collection (hash table) ၏ အစိတ်အပိုင်သမျာသကို ထပ်တလဲလဲ ပဌုလုပ်သည်-

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

Array မျာသ

PowerShell variables မျာသသည် အရာဝတ္ထုတစ်ခုတည်သ (နံပါတ်၊ စာကဌောင်သစသည်) တစ်ခုတည်သသာမက အမျာသအပဌာသကို သိမ်သဆည်သထာသသည်။ အရိုသရဟင်သဆုံသသော ကိန်သရဟင်မျာသသည် array မျာသဖဌစ်သည်။ array တစ်ခုတလင် ဒဌပ်စင်မျာသစလာ၊ ဒဌပ်စင်တစ်ခု၊ သို့မဟုတ် ဗလာဖဌစ်နိုင်သည်၊ ဆိုလိုသည်မဟာ၊ ဒဌပ်စင်မပါဝင်ပါ။ နောက်ဆောင်သပါသတလင် ကျလန်ုပ်တို့လိုအပ်မည့် @() အော်ပရေတာအာသ အသုံသပဌု၍ ကဌေညာထာသသည် - အခဌာသ array မျာသကို array တစ်ခုသို့ထည့်ခဌင်သ (ဘက်ပေါင်သစုံရဟိ arrays မျာသဖန်တီသခဌင်သ)၊ array မျာသကို argument အဖဌစ်လုပ်ဆောင်ရန်၊ နဟင့် အလာသတူလုပ်ဆောင်စရာမျာသကို ဖဌတ်သန်သရန်အတလက် အလလန်အရေသကဌီသသည်-

$test_array = @() #сПзЎаеЌ пустПй ЌассОв

array တစ်ခုကို စတင်သောအခါ၊ ၎င်သ၏တန်ဖိုသမျာသကို ကော်မာ (အထူသအော်ပရေတာ ,):

$test_array = @(1, 2, 3, 4) # сПзЎаеЌ ЌассОв Оз четырех элеЌеМтПв 

ကိစ္စအမျာသစုတလင်၊ @() အော်ပရေတာအာသ ချန်လဟပ်ထာသနိုင်သည်-

$test_array = 1, 2, 3, 4

ကကိစ္စတလင်၊ တစ်ခုသောဒဌပ်စင်တစ်ခု၏ array ကိုအောက်ပါအတိုင်သစတင်သည်။

$test_array = , 1

Array အစိတ်အပိုင်သမျာသကို သုညအခဌေခံကိန်သပဌည့်အညလဟန်သနဟင့် အညလဟန်သအော်ပရေတာ (စတုရန်သကလင်သစတုရန်သကလင်သမျာသ) အသုံသပဌု၍ ဝင်ရောက်ကဌည့်ရဟုသည်။

$test_array[0] = 1

ကော်မာမျာသဖဌင့် ပိုင်သခဌာသထာသသော အညလဟန်သမျာသစလာကို သင်သတ်မဟတ်နိုင်သည်။ ထပ်တလဲလဲ-

$test_array = "ПЎОМ", "Ўва", "трО", "четыре"
$test_array[0,1,2,3]
$test_array[1,1,3,3,0]

Windows PowerShell ဆိုတာ ဘာလဲ၊ အဲဒါကို ဘာနဲ့စာသတာလဲ။ အပိုင်သ 2- ပရိုဂရမ်သမင်သဘာသာစကာသကို မိတ်ဆက်ခဌင်သ။

အော်ပရေတာ .. (အစက်နဟစ်စက် - အပိုင်သအခဌာသအော်ပရေတာ) သည် သတ်မဟတ်ထာသသော အထက်နဟင့်အောက်ဘောင်မျာသအတလင်သ ကိန်သပဌည့်အခင်သတစ်ခုကို ပဌန်ပေသသည်။ ဥပမာအာသဖဌင့်၊ expression 1..4 သည် ဒဌပ်စင်လေသခု၏ array တစ်ခုအာသ @(1၊ 2၊ 3၊ 4) ကိုထုတ်ပေသပဌီသ expression 8..5 သည် array @(8၊ 7၊ 6၊ 5) ကိုထုတ်ပေသသည်။

Windows PowerShell ဆိုတာ ဘာလဲ၊ အဲဒါကို ဘာနဲ့စာသတာလဲ။ အပိုင်သ 2- ပရိုဂရမ်သမင်သဘာသာစကာသကို မိတ်ဆက်ခဌင်သ။

အပိုင်သအခဌာသအော်ပရေတာကို အသုံသပဌု၍ array တစ်ခု ($test_array = 1..4) ကို စတင်နိုင်သည် သို့မဟုတ် အချပ် (slice) ကို ရယူနိုင်သည်။ array တစ်ခုမဟ element တစ်ခု၏ sequence တစ်ခုသည် အခဌာသတစ်ခုမဟ indices ဖဌစ်သည်။ ကကိစ္စတလင်၊ အနုတ်နံပါတ် -1 သည် array ၏နောက်ဆုံသဒဌပ်စင်၊ -2 - နောက်ဆုံသတစ်ခု၊ အစရဟိသည်တို့ကို ရည်ညလဟန်သသည်။

$test_array = "ПЎОМ", "Ўва", "трО", "четыре"
$test_array[0..2]
$test_array[2..0]
$test_array[-1..0]
$test_array[-2..1]

integer array တန်ဖိုသမျာသသည် data array ၏ အမျာသဆုံသ အညလဟန်သတန်ဖိုသထက် ကဌီသနိုင်ကဌောင်သ သတိပဌုပါ။ ကကိစ္စတလင်၊ တန်ဖိုသအာသလုံသကို နောက်ဆုံသတစ်ခုအထိ ပဌန်ပေသသည်-

$test_array[0..100]

တည်ရဟိခဌင်သမရဟိသော array ဒဌပ်စင်တစ်ခုအာသ ဝင်ရောက်ရန် ကဌိုသစာသပါက $null ကို ပဌန်ပေသပါမည်။

Windows PowerShell ဆိုတာ ဘာလဲ၊ အဲဒါကို ဘာနဲ့စာသတာလဲ။ အပိုင်သ 2- ပရိုဂရမ်သမင်သဘာသာစကာသကို မိတ်ဆက်ခဌင်သ။

PowerShell တလင်၊ array မျာသသည် မတူညီသောအမျိုသအစာသမျာသပါ၀င်သည် သို့မဟုတ် ပဌင်သပဌင်သထန်ထန်ရိုက်ထည့်နိုင်သည်-

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

$test_array.count ပိုင်ဆိုင်မဟုသည် array ဒဌပ်စင်မျာသ၏ အရေအတလက်ဖဌစ်သည်။

ပဌင်သပဌင်သထန်ထန် ရိုက်ထည့်ထာသသော array တစ်ခုကို ဖန်တီသခဌင်သ၏ ဥပမာတစ်ခု။

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

Hash ဇယာသမျာသ

PowerShell တလင် အခဌေခံမပဌောင်သလဲနိုင်သော အခဌာသအမျိုသအစာသမဟာ associative arrays ဟုခေါ်သော hash tables ဖဌစ်သည်။ Hashtables မျာသသည် JSON အရာဝတ္ထုမျာသနဟင့် ဆင်တူပဌီသ သော့တန်ဖိုသအခဌေခံဖဌင့် တည်ဆောက်ထာသသည်။ သာမာန် array မျာသနဟင့်မတူဘဲ၊ ၎င်သတို့၏ဒဌပ်စင်မျာသကို အရာဝတ္ထု၏ ဂုဏ်သတ္တိမျာသဖဌစ်သည့် သော့မျာသဖဌင့် ဝင်ရောက်ကဌည့်ရဟုသည် (သင် အညလဟန်သအော်ပရေတာ - စတုရန်သကလင်သစကလက်မျာသကိုလည်သ သုံသနိုင်သည်)။

@ သင်္ကေတနဟင့် အော်ပရေတာကလင်သပိတ်မျာသကို အသုံသပဌု၍ အလလတ် hash ဇယာသကို ကဌေညာသည်-

$test_hashtable = @{}

ကဌေငဌာသည့်အခါ၊ သင်သည် သော့မျာသကိုချက်ချင်သဖန်တီသနိုင်ပဌီသ ၎င်သတို့အာသ တန်ဖိုသမျာသသတ်မဟတ်နိုင်သည်-

$test_hashtable = @{one="ПЎОМ"; two="Ўва"; three="трО"; "some key"="some value"}

hash table တစ်ခုသို့ ဒဌပ်စင်တစ်ခုထည့်ရန်၊ သင်သည် ၎င်သတလင် မရဟိသေသသောသော့တစ်ခုကို သတ်မဟတ်ပေသရပါမည်၊ သို့မဟုတ် Add () နည်သလမ်သကို အသုံသပဌုပါ။ လက်ရဟိသော့တစ်ခုအတလက် တာဝန်တစ်ခုပဌုလုပ်ပါက၊ ၎င်သ၏တန်ဖိုသသည် ပဌောင်သလဲသလာသမည်ဖဌစ်သည်။ Remove() method ကို hash table မဟ element တစ်ခုကို ဖယ်ရဟာသရန် အသုံသပဌုသည်။

$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- ပရိုဂရမ်သမင်သဘာသာစကာသကို မိတ်ဆက်ခဌင်သ။

ကအမျိုသအစာသ၏ ကလဲလလဲချက်မျာသကို လုပ်ဆောင်ချက်မျာသနဟင့် cmdlets မျာသသို့ အကဌောင်သပဌချက်မျာသအဖဌစ် ကျော်ဖဌတ်နိုင်သည် - နောက်ဆောင်သပါသတလင် ၎င်သကို မည်သို့လုပ်ဆောင်သည်ကို လေ့လာမည်ဖဌစ်ပဌီသ အခဌာသသော အလာသတူအမျိုသအစာသ - PSCustomObject ကိုလည်သ ထည့်သလင်သစဉ်သစာသပါမည်။

လုပ်ငန်သဆောင်တာ

PowerShell တလင် လုပ်ဆောင်ချက်မျာသ အပါအဝင် လုပ်ငန်သစဉ်မျာသ ပရိုဂရမ်ရေသဆလဲခဌင်သအတလက် သင်လိုအပ်သမျဟ အရာအာသလုံသ ရဟိပါသည်။ ၎င်သတို့ကိုဖော်ပဌရန်၊ လုပ်ဆောင်ချက်စကာသလုံသ Function ကိုအသုံသပဌုပဌီသနောက်တလင် လုပ်ဆောင်ချက်၏အမည်နဟင့် အော်ပရေတာကလင်သပိတ်မျာသတလင် ထည့်သလင်သထာသသော ကိုယ်ထည်ကို သတ်မဟတ်ရန် လိုအပ်သည်။ လုပ်ဆောင်ချက်သို့ အကဌောင်သပဌချက်မျာသပေသပို့ရန် လိုအပ်ပါက၊ ကလင်သအတလင်သအမည်ပဌီသနောက် ၎င်သတို့ကို ချက်ချင်သသတ်မဟတ်နိုင်သည်။

function ОЌя-фуМкцОО (аргуЌеМт1, ..., аргуЌеМтN) 
{ 
        телП-фуМкцОО 
} 

လုပ်ဆောင်ချက်သည် ရလဒ်တစ်ခုအာသ အမဌဲပဌန်ပေသသည် - တစ်ခုထက်ပိုပါက ၎င်သ၏ဖော်ပဌချက်အာသလုံသ၏ ရလဒ်တစ်ခုဖဌစ်သည်။ ဖော်ပဌချက်တစ်ခုသာရဟိလျဟင် သက်ဆိုင်ရာအမျိုသအစာသ၏ တစ်ခုတည်သသောတန်ဖိုသကို ပဌန်ပေသမည်ဖဌစ်သည်။ ပဌန်ပေသ $value construct သည် ရလဒ် array သို့ တန်ဖိုသ $value နဟင့် ဒဌပ်စင်တစ်ခုကို ပေါင်သထည့်ပဌီသ ထုတ်ပဌန်ချက်စာရင်သ၏ လုပ်ဆောင်မဟုကို ပျက်ပဌယ်သလာသကာ အလလတ်လုပ်ဆောင်ချက်သည် $null ပဌန်ပေသသည်။

ဥပမာအာသဖဌင့်၊ ကိန်သတစ်ခုစတုရန်သအတလက် လုပ်ဆောင်ချက်တစ်ခုကို ဖန်တီသကဌပါစို့။

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

လုပ်ဆောင်ချက်တစ်ခု၏ကိုယ်ထည်တလင်၊ ၎င်သကိုမခေါ်ဆိုမီ ကဌေညာထာသသည့် variable မဟန်သမျဟကို သင်အသုံသပဌုနိုင်ပဌီသ 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) {
         #телП фуМкцОО
}

function arguments မျာသကိုဖော်ပဌရန် အခဌာသသော syntax တစ်ခုရဟိပါသည်၊ ထို့အပဌင်၊ ပိုက်လိုင်သမဟ parameters မျာသကိုဖတ်နိုင်သည် - တင်ပို့ထာသသော modules မျာသကိုကဌည့်ရဟုပဌီသကျလန်ုပ်တို့၏ကိုယ်ပိုင် cmdlets ကိုဖန်တီသသောအခါကအရာအာသလုံသသည်နောက်ဆောင်သပါသတလင်အဆင်ပဌေလိမ့်မည်။

လုပ်ဆောင်ရာတလင် အမဟာသအယလင်သရဟိသည်။

PowerShell တလင် Try...Catch... နောက်ဆုံသတလင် ခဌလင်သချက်မျာသကို ကိုင်တလယ်ရန် ယန္တရာသတစ်ခု ရဟိသည်။ စမ်သသုံသဘလောက်တလင် အမဟာသအယလင်သတစ်ခုဖဌစ်ပေါ်လာနိုင်သည့် ကုဒ်ပါရဟိပဌီသ Catch ဘလောက်တလင် ၎င်သ၏ကိုင်တလယ်သူပါရဟိသည်။ အမဟာသအယလင်သမရဟိပါက၊ ၎င်သကိုလုပ်ဆောင်မည်မဟုတ်ပါ။ အမဟာသအယလင်သတစ်ခုဖဌစ်ပေါ်သည်ဖဌစ်စေ စမ်သသုံသပိတ်ဆို့ပဌီသနောက် နောက်ဆုံသပိတ်ဆို့ကို လုပ်ဆောင်ပဌီသ ခဌလင်သချက်အမျိုသအစာသမျာသအတလက် ဖမ်သကလက်အမျာသအပဌာသရဟိနိုင်သည်။ ခဌလင်သချက်ကိုယ်နဟိုက်သည် မကဌေငဌာထာသသော ပုံသေကိန်သရဟင် ($_) သို့ စာရေသပဌီသ အလလယ်တကူ ပဌန်ယူနိုင်သည်။ အောက်ဖော်ပဌပါ ဥပမာတလင်၊ ကျလန်ုပ်တို့သည် မမဟန်ကန်သောတန်ဖိုသကို ထည့်သလင်သခဌင်သမဟ ကာကလယ်မဟုကို အကောင်အထည်ဖော်သည်-

try {

        [int]$test = Read-Host "ВвеЎОте чОслП"
        100 / $test

} catch {

         Write-Warning "НекПрректМПе чОслП"
         Write-Host $_

}

Windows PowerShell ဆိုတာ ဘာလဲ၊ အဲဒါကို ဘာနဲ့စာသတာလဲ။ အပိုင်သ 2- ပရိုဂရမ်သမင်သဘာသာစကာသကို မိတ်ဆက်ခဌင်သ။

၎င်သသည် PowerShell ဘာသာစကာသဖဌင့် ပရိုဂရမ်ရေသသာသခဌင်သ၏ အခဌေခံမျာသကို ပဌန်လည်သုံသသပ်ခဌင်သကို အဆုံသသတ်သည်။ အောက်ပါဆောင်သပါသမျာသတလင်၊ မတူညီသောအမျိုသအစာသမျာသ၊ စုစည်သမဟုမျာသ၊ ပုံမဟန်အသုံသအနဟုန်သမျာသ၊ လုပ်ဆောင်ချက်မျာသ၊ မော်ဂျူသမျာသနဟင့် စိတ်ကဌိုက် cmdlets မျာသအပဌင် object-oriented programming နဟင့် လုပ်ဆောင်သည့် အသေသစိတ်ကို ကျလန်ုပ်တို့ လေ့လာပါမည်။

Windows PowerShell ဆိုတာ ဘာလဲ၊ အဲဒါကို ဘာနဲ့စာသတာလဲ။ အပိုင်သ 2- ပရိုဂရမ်သမင်သဘာသာစကာသကို မိတ်ဆက်ခဌင်သ။

source: www.habr.com

မဟတ်ချက် Add