æŽå²çã«ã¯ãUnix ã·ã¹ãã äžã®ã³ãã³ã ã©ã€ã³ ãŠãŒãã£ãªãã£ã¯ Windows ãããããéçºãããŠããŸããããæ°ãããœãªã¥ãŒã·ã§ã³ã®ç»å Žã«ããç¶æ³ã¯å€ãããŸããã
PowerShell ã¯ãå€å
žçãªæç¶ãåããã°ã©ãã³ã°ããªããžã§ã¯ãæåããã°ã©ãã³ã°ãããã«ã¯é¢æ°åããã°ã©ãã³ã°ã®èŠçŽ (æ¡ä»¶ä»ãåå²ãã«ãŒããå€æ°ãé
åãããã·ã¥ ããŒãã«ãã¯ã©ã¹ããšã©ãŒåŠçãé¢æ°ãªã©) ãåããã€ã³ã¿ãŒããªã¿åã®ãã«ããã©ãã€ã èšèªã§ã¹ã¯ãªãããäœæã§ããŸããã³ãã³ãã¬ãããšãã€ãã©ã€ã³ã
ç®æ¬¡ïŒ
ã³ãŒãã¯ãä»»æã®ããã¹ã ãšãã£ã¿ãŒãŸãã¯çµ±åéçºç°å¢ã䜿çšããŠäœæã§ããŸããæãç°¡åãªæ¹æ³ã¯ãMicrosoft ãµãŒã㌠ãªãã¬ãŒãã£ã³ã° ã·ã¹ãã ã«ä»å±ãã Windows PowerShell ISE ã䜿çšããããšã§ãã ããã¯ãããªãè€éãªã¹ã¯ãªããã®å Žåã«ã®ã¿å¿ èŠã§ããã³ãã³ãã®çãã»ããã¯ã察話çã«å®è¡ããæ¹ãç°¡åã§ãã
泚é
ã³ã¡ã³ãã®äœ¿çšã¯ãé©åãªã€ã³ãã³ããšç©ºçœãšãšãã«ãåªããããã°ã©ãã³ã° ã¹ã¿ã€ã«ã®äžéšãšã¿ãªãããŸãã
# ÐÐ»Ñ ÑÑÑПÑÐœÑÑ
кПЌЌеМÑаÑОев ОÑпПлÑзÑеÑÑÑ ÑОЌвПл ÑеÑеÑкО â ÑПЎеÑжОЌПе ÑÑÑПкО ОМÑеÑпÑеÑаÑÐŸÑ ÐœÐµ ПбÑабаÑÑваеÑ.
<#
Так ПбПзМаÑаÑÑÑÑ ÐœÐ°ÑалП О ÐºÐŸÐœÐµÑ Ð±Ð»ÐŸÑМПгП кПЌЌеМÑаÑОÑ.
ÐаклÑÑеММÑй ÐŒÐµÐ¶ÐŽÑ ÐœÐžÐŒÐž ÑекÑÑ ÐžÐœÑеÑпÑеÑаÑÐŸÑ ÐžÐ³ÐœÐŸÑОÑÑеÑ.
#>
å€æ°ãšãã®å
PowerShell ã®å€æ°ã¯ååä»ããªããžã§ã¯ãã§ãã ååã«ã¯ãæåãæ°åã ãã§ãªããã¢ã³ããŒã¹ã³ã¢æåãå«ããããšãã§ããŸãã $ èšå·ã¯åžžã«ååã®åã«äœ¿çšãããå€æ°ã宣èšããã«ã¯ãã€ã³ã¿ãŒããªã¿ãŒã«æå¹ãªååãäžããã ãã§ååã§ãã
å€æ°ãåæåãã (å€æ°ã«å€ã代å
¥ãã) ã«ã¯ã代å
¥æŒç®å (èšå· =) ã䜿çšãããŸãã
$test = 100
å€æ°ã宣èšããã«ã¯ãååãŸãã¯å€ã®åã«è§ãã£ã (åãã£ã¹ãæŒç®å) ã§ãã®åãæå®ããŸãã
[int]$test = 100
$test = [int]100
PowerShell ã®å€æ°ã¯ã.NET Core ã®å€æ°ã«åºã¥ããåã®ããããã£ãšã¡ãœãããåããæ¬æ Œçãªãªããžã§ã¯ã (ã¯ã©ã¹) ã§ããããšãç解ããããšãéèŠã§ãã äž»ãªãã®ãåæããŸãã
çš®é¡ïŒ.NETã¯ã©ã¹ïŒ
説æ
ã³ãŒãäŸ
[æåå] System.StringãŠãã³ãŒãæåå
$test = "ãã¹ã"
$test = 'ãã¹ã'
Unicode æå (16 ããã)
[char]$test = 'c' [ããŒã«å€] System.BooleanããŒã«å (ããŒã«å€ True ãŸã㯠False)
[ããŒã«]$test = $true [int] System.Int3232 ãããæŽæ° (XNUMX ããã)
[int]$test = 123456789 [ãã³ã°] System.Int6464 ãããæŽæ° (XNUMX ããã)
[é·ã]$test = 12345678910 [ã·ã³ã°ã«] System.Single32 ãããé·ã®æµ®åå°æ°ç¹æ°
[åäž]$test = 12345.6789 [double]System.Doubleé·ã64ããã(8ãã€ã)ã®æµ®åå°æ°ç¹æ°
[ããã«]$test = 123456789.101112 [åé²æ°]System.Decimal128 ãããæµ®åå°æ°ç¹æ° (d ã§çµããå¿ èŠããã)
[12345.6789 é²æ°]$test = XNUMXd [æ¥ä»æå»]System.DateTimeæ¥æ
$test = GetDate
[é å] System.Object[]èŠçŽ ã€ã³ããã¯ã¹ã 0 ããå§ãŸãé å
$test_array = 1ã2ãããã¹ããã3ã4
[ããã·ã¥ããŒãã«] System.Collections.Hashtableããã·ã¥ ããŒãã«ã¯ãååä»ãããŒãå«ãé£æ³é åã§ããã@{key = "value"} ã®ååã«åŸã£ãŠæ§ç¯ãããŸãã
$test_hashtable = @{one="one"; XNUMX 〠= XNUMX ã€; XNUMX = XNUMX "}
PowerShell ã¯æé»çãªåå€æããµããŒãããŠããŸããããã«ã匷å¶çã«æå®ãããŠããªãå Žåãå€æ°ã®åããã®å Žã§ (ããšãã°ãä»£å ¥æŒç®åã䜿çšããŠ) å€æŽã§ããŸãããã®å Žåãã€ã³ã¿ãŒããªã¿ãŒã¯ãšã©ãŒãè¿ããŸãã GetType() ã¡ãœãããåŒã³åºãããšã§ãåã®äŸããå€æ°ã®åãå€æã§ããŸãã
$test.GetType().FullName
å€æ°ãæäœããããã®ã³ãã³ãã¬ãããå€æ°ãããŸãã 次ã®ã³ãã³ãã䜿çšãããšããããã®ãªã¹ãã䟿å©ãªåœ¢åŒã§è¡šç€ºãããŸãã
Get-Command -Noun Variable | ft -Property Name, Definition -AutoSize -Wrap
宣èšãããå€æ°ãšãã®å€ã衚瀺ããã«ã¯ãç¹å¥ãªã³ãã³ãã¬ããã䜿çšã§ããŸãã
Get-Variable | more
ãã®æ¹æ³ã¯éåžžã«é¢åã«æããŸãããæŒç®åã䜿çšããããå€æ°ã®ããããã£ãã¡ãœããã«çŽæ¥ã¢ã¯ã»ã¹ããŠå€æ°ãæäœããæ¹ãã¯ããã«äŸ¿å©ã§ãã ãã ããã³ãã³ãã¬ããã䜿çšãããšããã€ãã®è¿œå ãã©ã¡ãŒã¿ãŒãèšå®ã§ãããããã³ãã³ãã¬ããã«ã¯ååšããæš©å©ããããŸãã ãŠãŒã¶ãŒå€æ°ã¯çŸåšã®ã»ãã·ã§ã³å ã§ã®ã¿å®çŸ©ãããããšãç解ããããšãéèŠã§ãã ã³ã³ãœãŒã«ãéããããã¹ã¯ãªãããçµäºãããšããããã¯åé€ãããŸãã
ã·ã¹ãã å€æ°
ãŠãŒã¶ãŒã«ãã£ãŠå®£èšãããå€æ°ã«å ããŠãçŸåšã®ã»ãã·ã§ã³ãçµäºããåŸãåé€ãããªãçµã¿èŸŒã¿ (ã·ã¹ãã ) å€æ°ããããŸãã PowerShell ã®ç¶æ ããŒã¿ã¯ XNUMX ã€ã®ã¿ã€ãã«åããããPowerShell ã®ç¶æ ããŒã¿ã¯ç¬èªã«ä»»æã®å€ãå²ãåœãŠãããšãã§ããªãèªåå€æ°ã«ä¿åãããŸãã ãããã«ã¯ãããšãã° $PWD ãå«ãŸããŸãã
$PWD.Path
ãŠãŒã¶ãŒèšå®ãä¿åããã«ã¯èšå®å€æ°ãå¿
èŠã§ããããã®å€ã¯å€æŽã§ããŸãã ããšãã°ã $ErrorActionPreference ã䜿çšãããšãèŽåœçã§ã¯ãªããšã©ãŒã®çºçã«å¯Ÿããã³ãã³ã ã€ã³ã¿ãŒããªã¿ã®åå¿ãèšå®ãããŸãã
宣èšãããå€æ°ã«ã¢ã¯ã»ã¹ããããã®æŒç®åãšã³ãã³ãã¬ããã«å ããŠãVariable: pseudo-accumulator ããããŸãã ä»ã®ãã©ã€ããšåæ§ã«æäœã§ããŸãããã®å Žåã®å€æ°ã¯ãã¡ã€ã« ã·ã¹ãã ãªããžã§ã¯ãã«äŒŒãŠããŸãã
Get-ChildItem Variable: | more
ãŸãã¯
ls Variable: | more
ã¹ã³ãŒã
PowerShellã®å€æ°ã«ã¯ã¹ã³ãŒã(Scope)ãšããæŠå¿µããããŸãã ã°ããŒãã« ã¹ã³ãŒã (Global) ã®ã¢ã¯ã·ã§ã³ã¯ãçŸåšã®ã»ãã·ã§ã³å šäœã«é©çšãããŸããããã«ã¯ãã·ã¹ãã å€æ°ãªã©ãå«ãŸããŸãã ããŒã«ã« (ããŒã«ã«) å€æ°ã¯ããããå®çŸ©ãããã¹ã³ãŒãå (ããšãã°é¢æ°å ) ã§ã®ã¿äœ¿çšã§ããŸãã ã¹ã¯ãªãã (Script) ã®ã¹ã³ãŒããšããæŠå¿µããããŸãããã¹ã¯ãªãã ã³ãã³ãã®å Žåãããã¯åºæ¬çã«ããŒã«ã«ã§ãã ããã©ã«ãã§ã¯ãå€æ°ã宣èšãããšãã«ããŒã«ã« ã¹ã³ãŒããäžããããŸãããããå€æŽããã«ã¯ã$Global: variable = value ã®ãããªç¹å¥ãªæ§é ãå¿ èŠã§ãã
ããšãã°ã次ã®ããã«ãªããŸãã
$Global:test = 100
ç°å¢å€æ°ïŒç°å¢ïŒ
ãã XNUMX ã€ã®ç䌌ãã©ã€ã Env: 㯠PowerShell ããå ¥æã§ããç°å¢å€æ°ãžã®ã¢ã¯ã»ã¹ã«äœ¿çšã§ããŸãã ã·ã§ã«ãéå§ããããšããããã¯èŠªããã»ã¹ (ã€ãŸããçŸåšã®ã»ãã·ã§ã³ãéå§ããããã°ã©ã ) ããã³ããŒãããéåžžããã®åæå€ã¯ã³ã³ãããŒã« ããã«ã®å€ãšåãã«ãªããŸãã ç°å¢å€æ°ã衚瀺ããã«ã¯ãGet-ChildItem ã³ãã³ãã¬ãããŸãã¯ãã®ãšã€ãªã¢ã¹ (ãšã€ãªã¢ã¹) : ls ããã³ dir ã䜿çšããŸãã
dir Env:
ãããã®å€æ°ã¯ãã€ã (ãŸãã¯æå) ã®ã·ãŒã±ã³ã¹ã§ããããã®è§£éã¯ãããã䜿çšããããã°ã©ã ã«ã®ã¿äŸåããŸãã *-Variable ã³ãã³ãã¬ããã¯ç°å¢å€æ°ã§ã¯æ©èœããŸããã ãããã«ã¢ã¯ã»ã¹ããã«ã¯ããã©ã€ã ãã¬ãã£ãã¯ã¹ã䜿çšããå¿
èŠããããŸãã
$env:TEST = "Hello, World!"
ç®è¡æŒç®åãšæ¯èŒæŒç®å
PowerShell ã«ã¯ã+ (å ç®)ã- (æžç®)ã* (ä¹ç®)ã/ (é€ç®)ãããã³ % (ã¢ãžã¥ããŸãã¯ã¢ãžã¥ã) ã®ç®è¡æŒç®åãçšæãããŠããŸãã ç®è¡åŒã®çµæã¯ãäžè¬ã«åãå ¥ããããŠããæŒç®é åºã«åŸã£ãŠå·Šããå³ã«è©äŸ¡ãããåŒã®äžéšãã°ã«ãŒãåããããã«æ¬åŒ§ã䜿çšãããŸãã æŒç®åéã®ã¹ããŒã¹ã¯ç¡èŠãããèªã¿ãããããããã«ã®ã¿äœ¿çšãããŸãã + æŒç®åãé£çµãã* æŒç®åã¯æååãç¹°ãè¿ããŸãã æååã«æ°å€ãè¿œå ããããšãããšãæååã«å€æãããŸãã ããã«ãPowerShell èšèªã«ã¯ãXNUMX ã€ã®å€ã®éã®äžèŽããã§ãã¯ããŠããŒã«å€ True ãŸã㯠False ãè¿ãæ¯èŒæŒç®åãå€æ°ãããŸãã
ãªãã¬ãŒã¿
説æ
ã³ãŒãäŸ
-eq
çãã / çãã (ä»ã®èšèªã® = ãŸã㯠== ã«äŒŒãŠããŸã)
$ãã¹ã = 100
$test -eq 123
ããªã³
çãããªã / çãããªã (<> ãŸã㯠!= ã«äŒŒãŠããŸã)
$ãã¹ã = 100
$test -ne 123
-gt
ãã倧ãã / ãã£ãš (ã¢ããã° >)
$ãã¹ã = 100
$test -gt 123
-äžãã
ä»¥äž / ä»¥äž (>= ãšåæ§)
$ãã¹ã = 100
$test -ge 123
-lt
ä»¥äž / ä»¥äž (< ã«äŒŒãŠããŸã)
$ãã¹ã = 100
$test -lt 123
-LE
ä»¥äž / ä»¥äž (<= ãšåæ§)
$ãã¹ã = 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 UNTILãFORãFOREACH ãªã©ãããŸããŸãªã«ãŒãããããŸãã
åææ¡ä»¶ã®ããã«ãŒãã¯ãããã true ã§ããå ŽåããŸãã¯ããã true ã§ããéãæ©èœããŸãã
[int]$test = 0
while ($test -lt 10) {
Write-Host $test
$test = $test + 1
}
äºåŸæ¡ä»¶ãå«ãã«ãŒãã¯ãå埩åŸã«æ¡ä»¶ããã§ãã¯ããããããå°ãªããšã XNUMX åå®è¡ãããŸãã åæã«ãDO WHILE ã¯æ¡ä»¶ã true ã®å Žåã«æ©èœããDO UNTIL ã¯æ¡ä»¶ã false ã®å Žåã«æ©èœããŸãã
[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 å€æ°ã«ã¯ãåäžã®ãªããžã§ã¯ã (æ°å€ãæååãªã©) ã ãã§ãªããè€æ°ã®ãªããžã§ã¯ããä¿åãããŸãã ãã®ãããªå€æ°ã®æãåçŽãªçš®é¡ã¯é åã§ãã é åã¯ãè€æ°ã®èŠçŽ ã§æ§æããããšããXNUMX ã€ã®èŠçŽ ã§æ§æããããšãã空ã«ããããšãã§ããŸãã èŠçŽ ãå«ãŸããŠããŸããã ããã¯ã次ã®èšäºã§å¿ èŠã«ãªã @() æŒç®åã䜿çšããŠå®£èšãããŸããããã¯ãä»ã®é åãé åã«è¿œå ãã (å€æ¬¡å é åãäœæãã)ãé åãåŒæ°ãšããŠé¢æ°ã«æž¡ããããã³åæ§ã®ã¿ã¹ã¯ãè¡ãå Žåã«éåžžã«éèŠã§ãã
$test_array = @() #ÑПзЎаеЌ пÑÑÑПй ЌаÑÑОв
é åãåæåããããšããã®å€ã¯ã«ã³ã (ç¹æ®æŒç®å ,) ã§åºåãããŠãªã¹ããããŸãã
$test_array = @(1, 2, 3, 4) # ÑПзЎаеЌ ЌаÑÑОв Оз ÑеÑÑÑеÑ
ÑлеЌеМÑПв
ã»ãšãã©ã®å Žåã@() æŒç®åã¯çç¥ã§ããŸãã
$test_array = 1, 2, 3, 4
ãã®å ŽåãXNUMXèŠçŽ ã®é åã¯æ¬¡ã®ããã«åæåãããŸãã
$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, XNUMX, XNUMX) ãåºåããŸãã
range æŒç®åã䜿çšãããšãé
å ($test_array = 1..4) ãåæåããããã¹ã©ã€ã¹ (slice) ãååŸãããã§ããŸãã ããé
åã®èŠçŽ ã®ã·ãŒã±ã³ã¹ãšå¥ã®é
åã®ã€ã³ããã¯ã¹ã ãã®å Žåãè² ã®æ° -1 ã¯é
åã®æåŸã®èŠçŽ ãæå³ãã-2 - æåŸãã XNUMX çªç®ã®èŠçŽ ãæå³ãã以äžåæ§ãšãªããŸãã
$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 èšèªã®ãã XNUMX ã€ã®åºæ¬çãªã¿ã€ãã®å€æ°ã¯ãé£æ³é åãšãåŒã°ããããã·ã¥ ããŒãã«ã§ãã ããã·ã¥ããŒãã«ã¯ 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")
ãã®åã®å€æ°ã¯ãåŒæ°ãšããŠé¢æ°ãã³ãã³ãã¬ããã«æž¡ãããšãã§ããŸãã次ã®èšäºã§ã¯ããããã©ã®ããã«è¡ãããããæ€èšããå¥ã®åæ§ã®åã§ãã PSCustomObject ã«ã€ããŠãæ€èšããŸãã
æ©èœ
PowerShell ã«ã¯ãé¢æ°ãå«ããæç¶ãåããã°ã©ãã³ã°ã«å¿ èŠãªãã®ããã¹ãŠæã£ãŠããŸãã ãããã説æããã«ã¯ãæ©èœèª Function ã䜿çšãããã®åŸãé¢æ°ã®ååãšæŒç®åæ¬åŒ§ã§å²ãã æ¬äœãæå®ããå¿ èŠããããŸãã é¢æ°ã«åŒæ°ãæž¡ãå¿ èŠãããå Žåã¯ãååã®çŽåŸã«ãã£ãã§å²ãã§æå®ã§ããŸãã
function ОЌÑ-ÑÑМкÑОО (аÑгÑЌеМÑ1, ..., аÑгÑЌеМÑN)
{
ÑелП-ÑÑМкÑОО
}
ãã®é¢æ°ã¯åžžã«çµæãè¿ããŸããã¹ããŒãã¡ã³ããè€æ°ããå Žåãããã¯ãã¹ãŠã®ã¹ããŒãã¡ã³ãã®çµæã®é åã§ãã ã¹ããŒãã¡ã³ãã XNUMX ã€ã ãã®å Žåã¯ã察å¿ããåã®å€ã®ã¿ãè¿ãããŸãã 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
é¢æ°ãèšè¿°ãããšãã«ãåŒæ°ã«ããã©ã«ãå€ãå²ãåœãŠãããšãã§ããŸãã
function func ($arg = value) {
#ÑелП ÑÑМкÑОО
}
é¢æ°ã®åŒæ°ãèšè¿°ããããã®å¥ã®æ§æããããããã«ãã€ãã©ã€ã³ãããã©ã¡ãŒã¿ãŒãèªã¿åãããšãã§ããŸããããããã¹ãŠã¯ã次ã®èšäºã§ãšã¯ã¹ããŒããããã¢ãžã¥ãŒã«ãèŠãŠç¬èªã®ã³ãã³ãã¬ãããäœæãããšãã«åœ¹ç«ã¡ãŸãã
ÐбÑабПÑка ПÑОбПк
PowerShell ã«ã¯ãäŸå€ãåŠçããããã® Try...Catch...Finally ã¡ã«ããºã ããããŸãã Try ãããã¯ã«ã¯ãšã©ãŒãçºçããå¯èœæ§ã®ããã³ãŒããå«ãŸããCatch ãããã¯ã«ã¯ãã®ãã³ãã©ãŒãå«ãŸããŸãã ãšã©ãŒããªãã£ãå Žåã¯å®è¡ãããŸããã Final ãããââã¯ã¯ããšã©ãŒã®çºçã«é¢ä¿ãªã Try ãããã¯ã®åŸã«å®è¡ãããããŸããŸãªã¿ã€ãã®äŸå€ã«å¯ŸããŠè€æ°ã® Catch ãããã¯ãååšããå ŽåããããŸãã äŸå€èªäœã¯ã宣èšãããŠããªãããã©ã«ãå€æ° ($_) ã«æžã蟌ãŸããç°¡åã«ååŸã§ããŸãã 以äžã®äŸã§ã¯ãç¡å¹ãªå€ã®å ¥åã«å¯Ÿããä¿è·ãå®è£ ããŠããŸãã
try {
[int]$test = Read-Host "ÐвеЎОÑе ÑОÑлП"
100 / $test
} catch {
Write-Warning "ÐекПÑÑекÑМПе ÑОÑлП"
Write-Host $_
}
ããã§ãPowerShell èšèªã§ã®ããã°ã©ãã³ã°ã®åºæ¬ã®åŸ©ç¿ã¯çµããã§ãã 次ã®èšäºã§ã¯ãããŸããŸãªåã®å€æ°ãã³ã¬ã¯ã·ã§ã³ãæ£èŠè¡šçŸã®æäœãé¢æ°ãã¢ãžã¥ãŒã«ãã«ã¹ã¿ã ã³ãã³ãã¬ããã®äœæãããã³ãªããžã§ã¯ãæåããã°ã©ãã³ã°ã«ã€ããŠè©³ããåŠç¿ããŸãã
åºæïŒ habr.com