Windows PowerShell์ด๋ž€ ๋ฌด์—‡์ด๋ฉฐ ๋ฌด์—‡๊ณผ ํ•จ๊ป˜ ๋จน๋‚˜์š”? ํŒŒํŠธ 2: ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ์†Œ๊ฐœ

์—ญ์‚ฌ์ ์œผ๋กœ Unix ์‹œ์Šคํ…œ์˜ ๋ช…๋ น์ค„ ์œ ํ‹ธ๋ฆฌํ‹ฐ๋Š” Windows๋ณด๋‹ค ๋” ์ž˜ ๊ฐœ๋ฐœ๋˜์—ˆ์ง€๋งŒ ์ƒˆ๋กœ์šด ์†”๋ฃจ์…˜์ด ๋“ฑ์žฅํ•˜๋ฉด์„œ ์ƒํ™ฉ์ด ๋ฐ”๋€Œ์—ˆ์Šต๋‹ˆ๋‹ค.

Windows PowerShell์ด๋ž€ ๋ฌด์—‡์ด๋ฉฐ ๋ฌด์—‡๊ณผ ํ•จ๊ป˜ ๋จน๋‚˜์š”? ํŒŒํŠธ 2: ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ์†Œ๊ฐœ

PowerShell์€ ์กฐ๊ฑด๋ถ€ ๋ถ„๊ธฐ, ๋ฃจํ”„, ๋ณ€์ˆ˜, ๋ฐฐ์—ด, ํ•ด์‹œ ํ…Œ์ด๋ธ”, ํด๋ž˜์Šค, ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ, ํ•จ์ˆ˜, cmdlet ๋ฐ ํŒŒ์ดํ”„๋ผ์ธ . ์ด์ „ ๊ธฐ์‚ฌ ํ™˜๊ฒฝ ์ž‘์—…์˜ ๊ธฐ๋ณธ ์‚ฌํ•ญ์— ์ „๋…ํ–ˆ์œผ๋ฉฐ ์ด์ œ ๋…์ž๋“ค์—๊ฒŒ ํ”„๋กœ๊ทธ๋ž˜๋จธ๋ฅผ ์œ„ํ•œ ์ž‘์€ ์•ˆ๋‚ด์„œ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๋ชฉ์ฐจ :

๋Œ“๊ธ€
๋ณ€์ˆ˜ ๋ฐ ์œ ํ˜•
์‹œ์Šคํ…œ ๋ณ€์ˆ˜
๋ฒ”์œ„
ํ™˜๊ฒฝ ๋ณ€์ˆ˜(ํ™˜๊ฒฝ)
์‚ฐ์ˆ  ๋ฐ ๋น„๊ต ์—ฐ์‚ฐ์ž
ํ• ๋‹น ์—ฐ์‚ฐ์ž
๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž
์กฐ๊ฑด๋ถ€ ์ ํ”„
์‚ฌ์ดํด
์–ด๋ ˆ์ด
ํ•ด์‹œ ํ…Œ์ด๋ธ”
๊ธฐ๋Šฅ
์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ

ํ…์ŠคํŠธ ํŽธ์ง‘๊ธฐ๋‚˜ ํ†ตํ•ฉ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€์žฅ ์‰ฌ์šด ๋ฐฉ๋ฒ•์€ Microsoft ์„œ๋ฒ„ ์šด์˜ ์ฒด์ œ์™€ ํ•จ๊ป˜ ์ œ๊ณต๋˜๋Š” Windows PowerShell ISE๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋Š” ์ƒ๋‹นํžˆ ๋ณต์žกํ•œ ์Šคํฌ๋ฆฝํŠธ์—๋งŒ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์งง์€ ๋ช…๋ น ์„ธํŠธ๋Š” ๋Œ€ํ™”์‹์œผ๋กœ ์‹คํ–‰ํ•˜๊ธฐ๊ฐ€ ๋” ์‰ฝ์Šต๋‹ˆ๋‹ค.

๋Œ“๊ธ€

์ฃผ์„์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ์ ์ ˆํ•œ ๋“ค์—ฌ์“ฐ๊ธฐ ๋ฐ ๊ณต๋ฐฑ๊ณผ ํ•จ๊ป˜ ์ข‹์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์Šคํƒ€์ผ์˜ ์ผ๋ถ€๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค.

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

<# 

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

#>

๋ณ€์ˆ˜ ๋ฐ ์œ ํ˜•

PowerShell์˜ ๋ณ€์ˆ˜๋Š” ๋ช…๋ช…๋œ ๊ฐœ์ฒด์ž…๋‹ˆ๋‹ค. ์ด๋ฆ„์—๋Š” ๋ฐ‘์ค„ ๋ฌธ์ž์™€ ๋ฌธ์ž ๋ฐ ์ˆซ์ž๊ฐ€ ํฌํ•จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. $ ๊ธฐํ˜ธ๋Š” ํ•ญ์ƒ ์ด๋ฆ„ ์•ž์— ์‚ฌ์šฉ๋˜๋ฉฐ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๋ ค๋ฉด ์ธํ„ฐํ”„๋ฆฌํ„ฐ์— ์œ ํšจํ•œ ์ด๋ฆ„์„ ์ง€์ •ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.

Windows PowerShell์ด๋ž€ ๋ฌด์—‡์ด๋ฉฐ ๋ฌด์—‡๊ณผ ํ•จ๊ป˜ ๋จน๋‚˜์š”? ํŒŒํŠธ 2: ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ์†Œ๊ฐœ

๋ณ€์ˆ˜๋ฅผ ์ดˆ๊ธฐํ™”(๊ฐ’ ํ• ๋‹น)ํ•˜๋ ค๋ฉด ํ• ๋‹น ์—ฐ์‚ฐ์ž(๊ธฐํ˜ธ =)๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

$test = 100

์ด๋ฆ„์ด๋‚˜ ๊ฐ’ ์•ž์— ์œ ํ˜•์„ ๋Œ€๊ด„ํ˜ธ(์œ ํ˜• ๋ณ€ํ™˜ ์—ฐ์‚ฐ์ž)๋กœ ์ง€์ •ํ•˜์—ฌ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

[int]$test = 100

$test = [int]100

PowerShell์˜ ๋ณ€์ˆ˜๋Š” .NET Core์˜ ๋ณ€์ˆ˜๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ์†์„ฑ ๋ฐ ๋ฉ”์„œ๋“œ ์œ ํ˜•์„ ๊ฐ€์ง„ ์™„์ „ํ•œ ๊ฐœ์ฒด(ํด๋ž˜์Šค)๋ผ๋Š” ์ ์„ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ฃผ์š” ํ•ญ๋ชฉ์„ ๋‚˜์—ดํ•ฉ๋‹ˆ๋‹ค.

์œ ํ˜•(.NET ํด๋ž˜์Šค)

๊ธฐ์ˆ 

์ฝ”๋“œ ์˜ˆ

[๋ฌธ์ž์—ด] ์‹œ์Šคํ…œ.๋ฌธ์ž์—ด

์œ ๋‹ˆ์ฝ”๋“œ ๋ฌธ์ž์—ด 

$ํ…Œ์ŠคํŠธ = "ํ…Œ์ŠคํŠธ"
$ํ…Œ์ŠคํŠธ = 'ํ…Œ์ŠคํŠธ'

[๋ฌธ์ž]์‹œ์Šคํ…œ.๋ฌธ์ž

์œ ๋‹ˆ์ฝ”๋“œ ๋ฌธ์ž(16๋น„ํŠธ)

[๋ฌธ์ž]$ํ…Œ์ŠคํŠธ = 'c'

[๋ถ€์šธ] System.Boolean

๋ถ€์šธ ์œ ํ˜•(๋ถ€์šธ True ๋˜๋Š” False)

[๋ถ€์šธ]$test = $true

[int] ์‹œ์Šคํ…œ.Int32

32๋น„ํŠธ ์ •์ˆ˜(XNUMX๋น„ํŠธ)

[int]$test = 123456789

[๊ธด] System.Int64

64๋น„ํŠธ ์ •์ˆ˜(XNUMX๋น„ํŠธ)

[๊ธด]$test = 12345678910

[์‹ฑ๊ธ€] ์‹œ์Šคํ…œ.์‹ฑ๊ธ€

๋ถ€๋™ ์†Œ์ˆ˜์  ์ˆซ์ž 32๋น„ํŠธ ๊ธธ์ด

[๋‹จ์ผ]$ํ…Œ์ŠคํŠธ = 12345.6789

[๋”๋ธ”]์‹œ์Šคํ…œ.๋”๋ธ”

๊ธธ์ด 64๋น„ํŠธ(8๋ฐ”์ดํŠธ)์˜ ๋ถ€๋™ ์†Œ์ˆ˜์  ์ˆ˜

[๋”๋ธ”]$ํ…Œ์ŠคํŠธ = 123456789.101112

[์‹ญ์ง„์ˆ˜]System.Decimal

128๋น„ํŠธ ๋ถ€๋™ ์†Œ์ˆ˜์  ์ˆซ์ž(d๋กœ ๋๋‚˜์•ผ ํ•จ)

[์‹ญ์ง„์ˆ˜]$test = 12345.6789d

[DateTime]System.DateTime

๋‚ ์งœ์™€ ์‹œ๊ฐ„ 

$test = GetDate

[๋ฐฐ์—ด] System.Object[]

์š”์†Œ ์ธ๋ฑ์Šค๊ฐ€ 0์—์„œ ์‹œ์ž‘ํ•˜๋Š” ๋ฐฐ์—ด

$test_array = 1, 2, "ํ…Œ์ŠคํŠธ", 3, 4

[ํ•ด์‹œ ํ…Œ์ด๋ธ”] System.Collections.Hashtable

ํ•ด์‹œ ํ…Œ์ด๋ธ”์€ @{key = "value"} ์›์น™์— ๋”ฐ๋ผ ๊ตฌ์ถ•๋œ ๋ช…๋ช…๋œ ํ‚ค๊ฐ€ ์žˆ๋Š” ์—ฐ๊ด€ ๋ฐฐ์—ด์ž…๋‹ˆ๋‹ค.

$test_hashtable = @{one="ํ•˜๋‚˜"; ๋‘˜="๋‘˜"; ์„ธ = ์„ธ"}

PowerShell์€ ์•”์‹œ์  ์œ ํ˜• ๋ณ€ํ™˜์„ ์ง€์›ํ•˜๋ฉฐ, ๋ณ€์ˆ˜ ์œ ํ˜•์„ ๊ฐ•์ œ๋กœ ์ง€์ •ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์ฆ‰์„์—์„œ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์˜ˆ: ํ• ๋‹น ์—ฐ์‚ฐ์ž ์‚ฌ์šฉ). ์ด ๊ฒฝ์šฐ ์ธํ„ฐํ”„๋ฆฌํ„ฐ์—์„œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. GetType() ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์ด์ „ ์˜ˆ์ œ์—์„œ ๋ณ€์ˆ˜์˜ ์œ ํ˜•์„ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

$test.GetType().FullName

Windows PowerShell์ด๋ž€ ๋ฌด์—‡์ด๋ฉฐ ๋ฌด์—‡๊ณผ ํ•จ๊ป˜ ๋จน๋‚˜์š”? ํŒŒํŠธ 2: ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ์†Œ๊ฐœ

๋ณ€์ˆ˜๋ฅผ ์กฐ์ž‘ํ•˜๊ธฐ ์œ„ํ•œ ์—ฌ๋Ÿฌ cmdlet์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํŽธ๋ฆฌํ•œ ํ˜•์‹์˜ ๋ชฉ๋ก์€ ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

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

Windows PowerShell์ด๋ž€ ๋ฌด์—‡์ด๋ฉฐ ๋ฌด์—‡๊ณผ ํ•จ๊ป˜ ๋จน๋‚˜์š”? ํŒŒํŠธ 2: ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ์†Œ๊ฐœ

์„ ์–ธ๋œ ๋ณ€์ˆ˜์™€ ํ•ด๋‹น ๊ฐ’์„ ๋ณด๋ ค๋ฉด ํŠน์ˆ˜ cmdlet์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Get-Variable | more

์ด ๋ฐฉ๋ฒ•์€ ์ง€๋‚˜์น˜๊ฒŒ ๋ฒˆ๊ฑฐ๋กœ์›Œ ๋ณด์ด์ง€๋งŒ ์—ฐ์‚ฐ์ž๋ฅผ ํ†ตํ•ด ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ํ•ด๋‹น ์†์„ฑ ๋ฐ ๋ฉ”์„œ๋“œ์— ์ง์ ‘ ์•ก์„ธ์Šคํ•˜์—ฌ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ํ›จ์”ฌ ๋” ํŽธ๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ cmdlet์€ ๋ช‡ ๊ฐ€์ง€ ์ถ”๊ฐ€ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์กด์žฌํ•  ๊ถŒ๋ฆฌ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž ๋ณ€์ˆ˜๋Š” ํ˜„์žฌ ์„ธ์…˜ ๋‚ด์—์„œ๋งŒ ์ •์˜๋œ๋‹ค๋Š” ์ ์„ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์ฝ˜์†”์ด ๋‹ซํžˆ๊ฑฐ๋‚˜ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์ข…๋ฃŒ๋˜๋ฉด ์‚ญ์ œ๋ฉ๋‹ˆ๋‹ค.

์‹œ์Šคํ…œ ๋ณ€์ˆ˜

์‚ฌ์šฉ์ž๊ฐ€ ์„ ์–ธํ•œ ๋ณ€์ˆ˜ ์™ธ์—๋„ ํ˜„์žฌ ์„ธ์…˜์ด ์ข…๋ฃŒ๋œ ํ›„์—๋„ ์‚ญ์ œ๋˜์ง€ ์•Š๋Š” ๋‚ด์žฅ(์‹œ์Šคํ…œ) ๋ณ€์ˆ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‘ ๊ฐ€์ง€๋กœ ๋‚˜๋‰˜๋Š”๋ฐ ํŒŒ์›Œ์‰˜ ์ƒํƒœ ๋ฐ์ดํ„ฐ๋Š” ์Šค์Šค๋กœ ์ž„์˜์˜ ๊ฐ’์„ ํ• ๋‹นํ•  ์ˆ˜ ์—†๋Š” ์ž๋™ ๋ณ€์ˆ˜์— ์ €์žฅ๋œ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ์˜ˆ๋ฅผ ๋“ค์–ด $PWD๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

$PWD.Path

Windows PowerShell์ด๋ž€ ๋ฌด์—‡์ด๋ฉฐ ๋ฌด์—‡๊ณผ ํ•จ๊ป˜ ๋จน๋‚˜์š”? ํŒŒํŠธ 2: ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ์†Œ๊ฐœ

์‚ฌ์šฉ์ž ์„ ํ˜ธ๋„๋ฅผ ์ €์žฅํ•˜๋ ค๋ฉด ์„ ํ˜ธ๋„ ๋ณ€์ˆ˜๊ฐ€ ํ•„์š”ํ•˜๋ฉฐ ๊ทธ ๊ฐ’์€ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด $ErrorActionPreference ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์น˜๋ช…์ ์ด์ง€ ์•Š์€ ์˜ค๋ฅ˜ ๋ฐœ์ƒ์— ๋Œ€ํ•œ ๋ช…๋ น ํ•ด์„๊ธฐ์˜ ๋ฐ˜์‘์ด ์„ค์ •๋ฉ๋‹ˆ๋‹ค.

์„ ์–ธ๋œ ๋ณ€์ˆ˜์— ์•ก์„ธ์Šคํ•˜๊ธฐ ์œ„ํ•œ ์—ฐ์‚ฐ์ž ๋ฐ cmdlet ์™ธ์—๋„ Variable: pseudo-accumulator๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋“œ๋ผ์ด๋ธŒ์™€ ์œ ์‚ฌํ•˜๊ฒŒ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ด ๊ฒฝ์šฐ ๋ณ€์ˆ˜๋Š” ํŒŒ์ผ ์‹œ์Šคํ…œ ๊ฐœ์ฒด์™€ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

Get-ChildItem Variable: | more

๋˜๋Š”

ls Variable: | more

Windows PowerShell์ด๋ž€ ๋ฌด์—‡์ด๋ฉฐ ๋ฌด์—‡๊ณผ ํ•จ๊ป˜ ๋จน๋‚˜์š”? ํŒŒํŠธ 2: ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ์†Œ๊ฐœ

๋ฒ”์œ„

PowerShell์˜ ๋ณ€์ˆ˜์—๋Š” ๋ฒ”์œ„(Scope)๋ผ๋Š” ๊ฐœ๋…์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ „์—ญ ๋ฒ”์œ„(Global)์˜ ์ž‘์—…์€ ์ „์ฒด ํ˜„์žฌ ์„ธ์…˜์— ์ ์šฉ๋˜๋ฉฐ ์˜ˆ๋ฅผ ๋“ค์–ด ์‹œ์Šคํ…œ ๋ณ€์ˆ˜๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ๋กœ์ปฌ(๋กœ์ปฌ) ๋ณ€์ˆ˜๋Š” ์ •์˜๋œ ๋ฒ”์œ„, ์ฆ‰ ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์Šคํฌ๋ฆฝํŠธ(Script)์˜ ๋ฒ”์œ„ ๊ฐœ๋…๋„ ์žˆ์ง€๋งŒ ์Šคํฌ๋ฆฝํŠธ ๋ช…๋ น์˜ ๊ฒฝ์šฐ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋กœ์ปฌ์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•  ๋•Œ ๋กœ์ปฌ ๋ฒ”์œ„๊ฐ€ ์ง€์ •๋˜๋ฉฐ ์ด๋ฅผ ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด $Global: variable = value์™€ ๊ฐ™์€ ํŠน์ˆ˜ ๊ตฌ์„ฑ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

$Global:test = 100

ํ™˜๊ฒฝ ๋ณ€์ˆ˜(ํ™˜๊ฒฝ)

๋˜ ๋‹ค๋ฅธ ์˜์‚ฌ ๋“œ๋ผ์ด๋ธŒ์ธ Env:๋Š” PowerShell์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ํ™˜๊ฒฝ ๋ณ€์ˆ˜์— ์•ก์„ธ์Šคํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์…ธ์ด ์‹œ์ž‘๋˜๋ฉด ์ƒ์œ„ ํ”„๋กœ์„ธ์Šค(์ฆ‰, ํ˜„์žฌ ์„ธ์…˜์„ ์‹œ์ž‘ํ•œ ํ”„๋กœ๊ทธ๋žจ)์—์„œ ๋ณต์‚ฌ๋˜๋ฉฐ ์ผ๋ฐ˜์ ์œผ๋กœ ์ดˆ๊ธฐ ๊ฐ’์€ ์ œ์–ดํŒ์˜ ๊ฐ’๊ณผ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ๋ณด๋ ค๋ฉด Get-ChildItem cmdlet ๋˜๋Š” ํ•ด๋‹น ๋ณ„์นญ(ls ๋ฐ dir)์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

dir Env:

Windows PowerShell์ด๋ž€ ๋ฌด์—‡์ด๋ฉฐ ๋ฌด์—‡๊ณผ ํ•จ๊ป˜ ๋จน๋‚˜์š”? ํŒŒํŠธ 2: ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ์†Œ๊ฐœ

์ด๋Ÿฌํ•œ ๋ณ€์ˆ˜๋Š” ๋ฐ”์ดํŠธ(๋˜๋Š” ์›ํ•˜๋Š” ๊ฒฝ์šฐ ๋ฌธ์ž)์˜ ์‹œํ€€์Šค์ด๋ฉฐ, ํ•ด์„์€ ์ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์—๋งŒ ์˜์กดํ•ฉ๋‹ˆ๋‹ค. *-Variable cmdlet์€ ํ™˜๊ฒฝ ๋ณ€์ˆ˜์™€ ํ•จ๊ป˜ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์•ก์„ธ์Šคํ•˜๋ ค๋ฉด ๋“œ๋ผ์ด๋ธŒ ์ ‘๋‘์‚ฌ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

$env:TEST = "Hello, World!"

Windows PowerShell์ด๋ž€ ๋ฌด์—‡์ด๋ฉฐ ๋ฌด์—‡๊ณผ ํ•จ๊ป˜ ๋จน๋‚˜์š”? ํŒŒํŠธ 2: ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ์†Œ๊ฐœ

์‚ฐ์ˆ  ๋ฐ ๋น„๊ต ์—ฐ์‚ฐ์ž

PowerShell์€ +(๋”ํ•˜๊ธฐ), -(๋นผ๊ธฐ), *(๊ณฑํ•˜๊ธฐ), /(๋‚˜๋ˆ„๊ธฐ) ๋ฐ %(๋ชจ๋“ˆ๋กœ ๋˜๋Š” ๋ชจ๋“ˆ๋กœ)์™€ ๊ฐ™์€ ์‚ฐ์ˆ  ์—ฐ์‚ฐ์ž๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์‚ฐ์ˆ ์‹์˜ ๊ฒฐ๊ณผ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ํ—ˆ์šฉ๋˜๋Š” ์—ฐ์‚ฐ ์ˆœ์„œ์— ๋”ฐ๋ผ ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ํ‰๊ฐ€๋˜๋ฉฐ ๊ด„ํ˜ธ๋Š” ์‹์˜ ์ผ๋ถ€๋ฅผ ๊ทธ๋ฃนํ™”ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์—ฐ์‚ฐ์ž ์‚ฌ์ด์˜ ๊ณต๋ฐฑ์€ ๋ฌด์‹œ๋˜๋ฉฐ ์ฝ๊ธฐ ์‰ฝ๋„๋ก๋งŒ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. + ์—ฐ์‚ฐ์ž๋„ ์—ฐ๊ฒฐํ•˜๊ณ  * ์—ฐ์‚ฐ์ž๋Š” ๋ฌธ์ž์—ด์„ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์ž์—ด์— ์ˆซ์ž๋ฅผ ์ถ”๊ฐ€ํ•˜๋ ค๊ณ  ํ•˜๋ฉด ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ PowerShell ์–ธ์–ด์—๋Š” ๋‘ ๊ฐ’ ๊ฐ„์˜ ์ผ์น˜๋ฅผ ํ™•์ธํ•˜๊ณ  ๋ถ€์šธ True ๋˜๋Š” False๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋งŽ์€ ๋น„๊ต ์—ฐ์‚ฐ์ž๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์—ฐ์‚ฐ์ž

๊ธฐ์ˆ 

์ฝ”๋“œ ์˜ˆ

-eq

Equal / Equals(๋‹ค๋ฅธ ์–ธ์–ด์˜ = ๋˜๋Š” ==์™€ ์œ ์‚ฌ)

$ํ…Œ์ŠคํŠธ = 100
$ํ…Œ์ŠคํŠธ -eq 123 

-๋„ค

๊ฐ™์ง€ ์•Š์Œ / ๊ฐ™์ง€ ์•Š์Œ(<> ๋˜๋Š” !=์™€ ์œ ์‚ฌ)

$ํ…Œ์ŠคํŠธ = 100
$ ํ…Œ์ŠคํŠธ -ne 123   

-gt

๋ณด๋‹ค ํผ / ์ด์ƒ(์•„๋‚ ๋กœ๊ทธ >)

$ํ…Œ์ŠคํŠธ = 100
$ํ…Œ์ŠคํŠธ -gt 123

-๊ฒŒ

ํฌ๊ฑฐ๋‚˜ ๊ฐ™์Œ / ํฌ๊ฑฐ๋‚˜ ๊ฐ™์Œ(>=์™€ ์œ ์‚ฌ)

$ํ…Œ์ŠคํŠธ = 100
$ํ…Œ์ŠคํŠธ -ge 123

-๊ทธ

๋ฏธ๋งŒ / ๋ฏธ๋งŒ(<์™€ ์œ ์‚ฌ)

$ํ…Œ์ŠคํŠธ = 100
$ํ…Œ์ŠคํŠธ -lt 123  

๊ทธ๋“ค

์ž‘๊ฑฐ๋‚˜ ๊ฐ™์Œ / ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์Œ(<=์™€ ์œ ์‚ฌ)

$ํ…Œ์ŠคํŠธ = 100
$ํ…Œ์ŠคํŠธ -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์ธ ๊ฒฝ์šฐ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

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

์กฐ๊ฑด์ด ๋ฐ˜๋ณต ํ›„์— ํ™•์ธ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌํ›„ ์กฐ๊ฑด์ด ์žˆ๋Š” ๋ฃจํ”„๋Š” ์ ์–ด๋„ ํ•œ ๋ฒˆ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ๋™์‹œ์— DO WHILE์€ ์กฐ๊ฑด์ด ์ฐธ์ผ ๋•Œ ์ž‘๋™ํ•˜๊ณ  DO UNTIL์€ ๊ฑฐ์ง“์ผ ๋•Œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

[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

๋ฐฐ์—ด ์š”์†Œ๋Š” XNUMX๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋Š” ์ •์ˆ˜ ์ธ๋ฑ์Šค์™€ ์ธ๋ฑ์Šค ์—ฐ์‚ฐ์ž(๋Œ€๊ด„ํ˜ธ)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์•ก์„ธ์Šคํ•ฉ๋‹ˆ๋‹ค.

$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, XNUMX, XNUMX) ๋ฐฐ์—ด์„ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

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 ์–ธ์–ด์˜ ๋˜ ๋‹ค๋ฅธ ๊ธฐ๋ณธ ๋ณ€์ˆ˜ ์œ ํ˜•์€ ์—ฐ๊ด€ ๋ฐฐ์—ด์ด๋ผ๊ณ ๋„ ํ•˜๋Š” ํ•ด์‹œ ํ…Œ์ด๋ธ”์ž…๋‹ˆ๋‹ค. ํ•ด์‹œ ํ…Œ์ด๋ธ”์€ 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")

Windows PowerShell์ด๋ž€ ๋ฌด์—‡์ด๋ฉฐ ๋ฌด์—‡๊ณผ ํ•จ๊ป˜ ๋จน๋‚˜์š”? ํŒŒํŠธ 2: ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ์†Œ๊ฐœ

์ด ์œ ํ˜•์˜ ๋ณ€์ˆ˜๋Š” ํ•จ์ˆ˜ ๋ฐ cmdlet์— ๋Œ€ํ•œ ์ธ์ˆ˜๋กœ ์ „๋‹ฌ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ๋ฌธ์„œ์—์„œ๋Š” ์ด๊ฒƒ์ด ์ˆ˜ํ–‰๋˜๋Š” ๋ฐฉ๋ฒ•์„ ์—ฐ๊ตฌํ•˜๊ณ  ๋‹ค๋ฅธ ์œ ์‚ฌํ•œ ์œ ํ˜•์ธ PSCustomObject๋„ ๊ณ ๋ คํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ธฐ๋Šฅ

PowerShell์—๋Š” ํ•จ์ˆ˜๋ฅผ ํฌํ•จํ•˜์—ฌ ์ ˆ์ฐจ์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ํ•„์š”ํ•œ ๋ชจ๋“  ๊ฒƒ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์„ค๋ช…ํ•˜๊ธฐ ์œ„ํ•ด ํ•จ์ˆ˜ ๋‹จ์–ด Function์ด ์‚ฌ์šฉ๋˜๋ฉฐ ๊ทธ ํ›„์—๋Š” ์—ฐ์‚ฐ์ž ๊ด„ํ˜ธ๋กœ ๋ฌถ์ธ ํ•จ์ˆ˜ ์ด๋ฆ„๊ณผ ๋ณธ๋ฌธ์„ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ•จ์ˆ˜์— ์ธ์ˆ˜๋ฅผ ์ „๋‹ฌํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ๊ด„ํ˜ธ ์•ˆ์˜ ์ด๋ฆ„ ๋ฐ”๋กœ ๋’ค์— ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

ํ•จ์ˆ˜๋Š” ํ•ญ์ƒ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ํ•˜๋‚˜ ์ด์ƒ์ด ์žˆ๋Š” ๊ฒฝ์šฐ ๋ชจ๋“  ๋ช…๋ น๋ฌธ์˜ ๊ฒฐ๊ณผ ๋ฐฐ์—ด์ž…๋‹ˆ๋‹ค. ๋ฌธ์ด ํ•˜๋‚˜๋งŒ ์žˆ๋Š” ๊ฒฝ์šฐ ํ•ด๋‹น ์œ ํ˜•์˜ ๊ฐ’๋งŒ ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค. 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

Windows PowerShell์ด๋ž€ ๋ฌด์—‡์ด๋ฉฐ ๋ฌด์—‡๊ณผ ํ•จ๊ป˜ ๋จน๋‚˜์š”? ํŒŒํŠธ 2: ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ์†Œ๊ฐœ

ํ•จ์ˆ˜๋ฅผ ์„ค๋ช…ํ•  ๋•Œ ์ธ์ˆ˜์— ๊ธฐ๋ณธ๊ฐ’์„ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

function func ($arg = value) {
         #ั‚ะตะปะพ ั„ัƒะฝะบั†ะธะธ
}

ํ•จ์ˆ˜ ์ธ์ˆ˜๋ฅผ ์„ค๋ช…ํ•˜๋Š” ๋˜ ๋‹ค๋ฅธ ๊ตฌ๋ฌธ์ด ์žˆ์œผ๋ฉฐ ๋งค๊ฐœ ๋ณ€์ˆ˜๋Š” ํŒŒ์ดํ”„๋ผ์ธ์—์„œ ์ฝ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ชจ๋“  ๊ฒƒ์€ ๋‹ค์Œ ๋ฌธ์„œ์—์„œ ๋‚ด๋ณด๋‚ธ ๋ชจ๋“ˆ์„ ์‚ดํŽด๋ณด๊ณ  ์ž์ฒด cmdlet์„ ๋งŒ๋“ค ๋•Œ ์œ ์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ

PowerShell์—๋Š” ์˜ˆ์™ธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” Try...Catch...Finally ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ์žˆ์Šต๋‹ˆ๋‹ค. Try ๋ธ”๋ก์—๋Š” ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ์ฝ”๋“œ๊ฐ€ ํฌํ•จ๋˜๊ณ  Catch ๋ธ”๋ก์—๋Š” ํ•ด๋‹น ํ•ธ๋“ค๋Ÿฌ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ์˜ค๋ฅ˜๊ฐ€ ์—†์œผ๋ฉด ์‹คํ–‰๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. finally ๋ธ”๋ก์€ ์˜ค๋ฅ˜ ๋ฐœ์ƒ ์—ฌ๋ถ€์™€ ๊ด€๊ณ„์—†์ด Try ๋ธ”๋ก ์ดํ›„์— ์‹คํ–‰๋˜๋ฉฐ, ์˜ˆ์™ธ ์œ ํ˜•์— ๋”ฐ๋ผ Catch ๋ธ”๋ก์ด ์—ฌ๋Ÿฌ ๊ฐœ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ์™ธ ์ž์ฒด๋Š” ์„ ์–ธ๋˜์ง€ ์•Š์€ ๊ธฐ๋ณธ ๋ณ€์ˆ˜($_)์— ๊ธฐ๋ก๋˜๋ฉฐ ์‰ฝ๊ฒŒ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜ ์˜ˆ์—์„œ๋Š” ์œ ํšจํ•˜์ง€ ์•Š์€ ๊ฐ’์„ ์ž…๋ ฅํ•˜์ง€ ๋ชปํ•˜๋„๋ก ๋ณดํ˜ธํ•ฉ๋‹ˆ๋‹ค.

try {

        [int]$test = Read-Host "ะ’ะฒะตะดะธั‚ะต ั‡ะธัะปะพ"
        100 / $test

} catch {

         Write-Warning "ะะตะบะพั€ั€ะตะบั‚ะฝะพะต ั‡ะธัะปะพ"
         Write-Host $_

}

Windows PowerShell์ด๋ž€ ๋ฌด์—‡์ด๋ฉฐ ๋ฌด์—‡๊ณผ ํ•จ๊ป˜ ๋จน๋‚˜์š”? ํŒŒํŠธ 2: ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ์†Œ๊ฐœ

์ด๊ฒƒ์œผ๋กœ PowerShell ์–ธ์–ด๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๊ธฐ๋ณธ ์‚ฌํ•ญ์— ๋Œ€ํ•œ ๊ฒ€ํ† ๋ฅผ ๋งˆ์นฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ๋ฌธ์„œ์—์„œ๋Š” ๋‹ค์–‘ํ•œ ์œ ํ˜•์˜ ๋ณ€์ˆ˜, ์ปฌ๋ ‰์…˜, ์ •๊ทœ์‹, ํ•จ์ˆ˜, ๋ชจ๋“ˆ ๋ฐ ์‚ฌ์šฉ์ž ์ง€์ • cmdlet ๋งŒ๋“ค๊ธฐ, ๊ฐœ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ž‘์—…์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ด…๋‹ˆ๋‹ค.

Windows PowerShell์ด๋ž€ ๋ฌด์—‡์ด๋ฉฐ ๋ฌด์—‡๊ณผ ํ•จ๊ป˜ ๋จน๋‚˜์š”? ํŒŒํŠธ 2: ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ์†Œ๊ฐœ

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€