1.17.6. fejezet, Vezérlő szerkezetek
Beküldte pzoli - 2019, augusztus 3 - 4:34du
Több soros scriptek bevitele az ISE-be a SHIFT + ENTER kombinációval történik
Elágazások
if (kifejezés) {...} elseif (kifejezés) {...} else {...}
Switch
switch (2) {1 {'One'} 2 {'Two'; break} 2 {'another 2'} default {'default'} } #Two switch -wildcard ('abc') {a* {"a*: $_"} *c {"*c: $_"}} #a* : abc #*c : abc switch -regex ('abc') {^a {"a*: $_"} 'c$' {"*c: $_"}} #a* : abc #*c : abc #count files switch -wildcard (Get-ChildItem c:\windows) { *.dll {$dll++} *.txt {$txt++} *.log {$log++} } #total size $dll=$txt=$log=0 switch -wildcard (Get-ChildItem c:\windows) { *.dll {$dll += $_.length; continue} *.txt {$txt += $_.length; continue} *.log {$log += $_.length; continue} } #process file (egyszerre egy sort olvas, memóriatakarékos megoldás) $lg=$tm=$cr=0 switch -regex -file $env:TEMP\files.txt { '\.log$' {$lg++} '\.tmp$' {$tm++} '\.cvr$' {$cr++} } #process file (az egész file tartalmát felolvassa) switch -regex (${c:\temp\files.txt}) { '\.log$' {$lg++} '\.tmp$' {$tm++} '\.cvr$' {$cr++} } switch -regex ('abc') {'(^a)(.*$)' {$matches}} switch -regex ('abc') {'(^A)(.*$)' {$matches}} switch -regex -case ('abc') {'(^A)(.*$)' {$matches}} #Key Value #--- ---- #2 bc #1 a #0 abc switch (8) { {$_ -gt 3} {'greater than three'} {$_ -gt 7} {'greater than 7'} } #greater than three #greater than 7 switch(1,2,3,4,5,6) { {$_ % 2} {"Odd $_"; continue} 4 {'FOUR'} default {"Even $_"} } #Odd 1 #Even 2 #Odd 3 #FOUR #Odd 5 #Even 6 $options= -split '-a -b Hello -c' switch ($options){ '-a' { $a=$true } '-b' { [void] $switch.MoveNext(); $b= $switch.Current } '-c' { $c=$true } '-d' { $d=$true } } #a=True b=Hello c=True d=
For és ForEach
$numbers = 12, 21, 34, 44 $numbers | foreach {$_} for($i = 0; $i -lt $numbers.length; $i++){ $numbers[$i] } $obj2 = @{Account="User01";Domain="Domain01";Admin="True"} foreach ($element in $obj2) { $element }
While, Do..While és Do..Until
#használható a break és a continue elem $array = @("item1", "item2", "item3") $counter = 0; while($counter -lt $array.length){ $array[$counter] $counter += 1 } $counter = 0; do { $array[$counter] $counter += 1 } while($counter -lt $array.length) #amig igaz az állítás $i = 0 do { $i++ $i } until ($i -gt 9) #amig hamis az állítás
- A hozzászóláshoz be kell jelentkezni