Get-Command๋ฅผ ์ฌ์ฉํ ๋ ๋ช ๋ น์ ๋ํ ๋ฒ์ ์ ๋ณด๊ฐ ํ์๋๋ ๊ฒฝ์ฐ๋ ๋ช ๋ น์ด ๋งค๋ํ์คํธ๊ฐ ์๋ ๋ชจ๋์ ์ผ๋ถ์ผ ๋๋ฟ์ ๋๋ค. ๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ ๋ฒ์ ์ ์ ๋ง ๋ชจ๋์ฉ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ํนํ ๋ ๋ฆฝ ์คํํ ํ์ผ์ ๊ฒฝ์ฐ ๊ธฐ๋ฅ ์์ค๋ณ๋ก ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ์ง์ํ๋ ๋ฐฉ๋ฒ์ด ์์ด์ผ ํฉ๋๋ค. PS1 ํ์ผ์ ๋จ์ผ ๊ธฐ๋ฅ ๋ช ๋ น์ด ์์ ์ ์์ต๋๋ค. ๋๋ ์์ค๋ฅผ ์ฐ๊ณ ๋ช ๋ น์ ์คํํ๊ฒ ๋์ด ๊ธฐ์ฉ๋๋ค. ํ์ง๋ง Get-Command๋ฅผ ์ฌ์ฉํ ๋ ๋ฒ์ ๋ฒํธ๋ฅผ ๋ณด๊ณ ์ถ์ต๋๋ค.
System.Management.Automation.FunctionInfo ํด๋์ค์๋ ํ์ํ ์์ฑ์ด ์์ง๋ง ์ฝ๊ธฐ ์ ์ฉ์ ๋๋ค. PowerShellGet ๋ฐ ๊ฒ์๋ ์คํฌ๋ฆฝํธ์ ํจ๊ป ์ฌ์ฉ๋๋ PScriptInfo ๋ฉํ๋ฐ์ดํฐ์ ํด๋นํ๋ ๊ธฐ๋ฅ์ด ์์ผ๋ฉด ์ข์ ๊ฒ์ ๋๋ค. ํจ์๋ฅผ PowerShell๋ก ๊ฐ์ ธ์ฌ ๋ PowerShell์ด โโ์ฒ๋ฆฌํ๊ณ ์ฌ์ฉํ ๋ฉํ๋ฐ์ดํฐ ์น์ ์ ๋ง๋ค์ด ๋ณด๊ฒ ์ต๋๋ค.
๋ฒ์ ์ ์ถ๊ฐํ๊ธฐ ์ํด PowerShell ์ธ์ด๋ฅผ ์ด๋ป๊ฒ ํฅ์์ํค๊ณ ์ถ์์ง ์ ๋ณด๋ฅผ ์ถ๊ฐํ์ญ์์ค. cmdletbinding ํน์ฑ์์?
๋ด ์๊ฐ์ ๋ค์๊ณผ ๊ฐ์ ์ฃผ์ ํค๋๋ฅผ ์์ฑํ๋ New-ScriptFileInfo์ ๊ฐ์ ์์ ์ ์ํํ๋ ๊ฒ์ ๋๋ค.
<#PSScriptInfo
.VERSION 1.0
.GUID 66c837b7-6478-4571-9dec-0621e13df4c3
.AUTHOR Jeff
.COMPANYNAME
.COPYRIGHT 2020
.TAGS
.LICENSEURI
.PROJECTURI
.ICONURI
.EXTERNALMODULEDEPENDENCIES
.REQUIREDSCRIPTS
.EXTERNALSCRIPTDEPENDENCIES
.RELEASENOTES
.PRIVATEDATA
#>
<#
.DESCRIPTION
This is a cool function
#>
Param()
PSFunctionInfo๋ก ๋ง๋ค๊ณ Get-Command์์ ๊ตฌ๋ฌธ ๋ถ์ํ๋๋ก ํฉ๋๋ค. ๋๋ PowerShell์ด โโ#requires๋ฅผ ๊ตฌ๋ฌธ ๋ถ์ํ ์ ์๋ ๊ฒ๊ณผ ๊ฐ์ ๋ฐฉ์์ผ๋ก #version์ ๊ตฌ๋ฌธ ๋ถ์ํ๋๋ก ํฉ๋๋ค. ๊น๋ค๋ก์ด ๋ถ๋ถ์ ๋์ผํ ps1 ํ์ผ์ ์ฌ๋ฌ ๊ธฐ๋ฅ์ด ์๋ ๊ฒฝ์ฐ์ด๋ฏ๋ก ๊ธฐ๋ฅ ์์ฑ์๋ก์ ์ํํ๋ ๋ชจ๋ ์์ ์ ํด๋น ๊ธฐ๋ฅ์ ํฌํจ๋์ด์ผ ํฉ๋๋ค. ์ด๊ฒ์ ๊ตฌ๋ฌธ ๋ถ์๋ ์ฃผ์ ๋ธ๋ก, ์๋ก์ด cmdletbinding() ์ต์ ๋๋ ์์ ํ ์๋ก์ด ํน์ฑ์ผ ์ ์์ต๋๋ค.
Function Get-Awesomeness {
[cmdletbinding()]
[alias("awe")]
[outputtype("psobject")]
[version("1.1.0")]
Param ()
...
}
๊ธฐ๋ฅ์์ ๊ฐ์ ๋ณผ ์ ์์ต๋๋ค. PowerShellGet์ ๊ฒ์ํ๊ณ PowerShell ์คํฌ๋ฆฝํธ๋ฅผ ๋ชจ๋๋ก๋ง ๋ฐฐํฌํ ์ ์์ง๋ง ํ์ผ์ ๋ํด์๋ ์ด ์์ ์ ์ํํ ์ ์์ต๋๋ค. ๋น์ฆ๋์ค ์ฌ๋ก/์ํฌํ๋ก๋ฅผ ์ค๋ช ํ ์ ์์ต๋๊น?
๊ฐค๋ฌ๋ฆฌ์ ๊ฒ์๋ ์ ์ด ์๋ PowerShell ์๋ฃจ์ ์ ๋ง๋๋ ์ฌ๋๋ค์ด ๋ง์ด ์์ต๋๋ค. ํ์ฌ ํ๊ฒฝ์์์ ๊ฐ์ด ๋ด๋ถ์ ์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ชจ๋ ๊ฒ์ด ํ๋์ ๋ชจ๋๋ก ํจํค์ง๋๋ ๊ฒ์ ์๋๋๋ค. ํ์ฌ ํ๊ฒฝ์์ ์ผํ๊ณ ๊ธฐ๋ฅ์ด ์๋ ๋ ๋ฆฝ ์คํํ ์คํฌ๋ฆฝํธ ํ์ผ์ด ์์ ์ ์์ต๋๋ค. ํด๋น ๊ธฐ๋ฅ์ ๋ฒ์ ์ ์ถ์ ํ๋ ๊ธฐ๋ฅ์ ์ํฉ๋๋ค. Get-Command Get-CompanyFoo๋ฅผ ์คํํ๋ฉด ๋ฒ์ ๋ฒํธ๋ฅผ ๋ณผ ์ ์์ด์ผ ํฉ๋๋ค. ๊ทธ๋ฐ ์ ์์ ๋ชจ๋์์๋ ๋ด๋ณด๋ธ ๋ชจ๋ ํจ์๋ ๋์ผํ ๋ฒ์ ๋ฒํธ๋ฅผ ๊ณต์ ํฉ๋๋ค. ๊ธฐ๋ฅ๋ณ๋ก ๋ฒ์ ์ ๋ณด๋ฅผ ์ถ์ ํ๋ ๊ธฐ๋ฅ์ ์ํฉ๋๋ค. ๋ฌผ๋ก ์์ค ์ฝ๋๋ฅผ ์ฝ๋ ๋ฐ ์์กดํ์ง ์์๋ ๋ฉ๋๋ค. ํฌํ ๋ฐ์คํฌ ๊ธฐ์ ์๊ฐ ๋ด ๊ธฐ๋ฅ ์ค ํ๋๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ PowerShell์ ์ฌ์ฉํ์ฌ ๋ช ๋ น ๋ฒ์ ์ ๊ฒ์ํ ์ ์์ด์ผ ํฉ๋๋ค.
ํ์คํ, ๋ชจ๋ ๊ธฐ๋ฅ์ด ์ด๊ฒ์ ํ์๋ก ํ๋ ๊ฒ์ ์๋๋๋ค. ์ฌ์ง์ด ๋ชจ๋์ ์๋ ๊ธฐ๋ฅ๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค. ๋ช ๋ น๋ณ ๋ฒ์ ์ด ๊ฐ์ง๋์ง ์์ผ๋ฉด ๋ชจ๋ ๋ฒ์ ์ ์ฌ์ฉํ๋ ๋ชจ๋์ ๊ธฐ๋ฅ์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
@jdhitsolutions ๊ฐ์ฌํฉ๋๋ค!
๊ทํ์ ์๋๋ฆฌ์ค์๋ (1) ๋ฒ์ ์ถ์ ์์คํ
, (2) ๋ฐฐํฌ ์์คํ
์ ๋ ๊ฐ์ง ๊ตฌ์ฑ ์์๊ฐ ์์ต๋๋ค.
์ฒซ ๋ฒ์งธ๋ GIT(๊ธฐํ?)์ผ ์ ์์ต๋๋ค.
์คํฌ๋ฆฝํธ ํ์ผ์ ๋ฐฐํฌํ๋ ๋ฐฉ๋ฒ์ด ๋ช
ํํ์ง ์์ต๋๋ค.
(์์ฒญํ ์์ฑ์ ์ฌ๋ฐ๋ฅธ ์์น๋ฅผ ์ดํดํ๋ ค๊ณ ํฉ๋๋ค.)
๋๋ ์ ๊ธฐ์ ์ผ๋ก ํด๋ผ์ด์ธํธ์ ๊ธฐ๋ฅ์ ๋จ๊ฒจ๋๋๋ฐ, ์ด ๊ธฐ๋ฅ์ ํน์ ํด๋ผ์ด์ธํธ์์ ๋ง์ง๋ง์ผ๋ก ์ฌ์ฉํ ์์ ์ ๊ธฐ์ค์ผ๋ก ํฉ๋๋ค. ์ค๋ ํด๋ผ์ด์ธํธ์์ ์ฌ์ฉํ๋ getWUlog๊ฐ ๋ ์ค๋ฆ ๋๋ค. WinRM๊ณผ psexec(139 ๋๋ 5985๊ฐ ์ด๋ ค ์๋์ง ํ์ธ)๋ฅผ ์ฌ์ฉํ์ฌ ์๊ฒฉ ์์คํ ์ ์ฐ๊ฒฐํ๊ณ ํด๋น ์ปดํจํฐ์์ WindowsUpdate ๋ก๊ทธ๋ฅผ ๊ฒ์ํ๊ณ ๋ก์ปฌ ์ปดํจํฐ๋ก ๊ฒ์ํ๊ณ ๋ฉ๋ชจ์ฅ์ ์ฌ๋ ๋ฐฉ๋ฒ์ ์๊ณ ์์ต๋๋ค.
๋ค๋ฅธ ํ๋๋ getFrameworkVersion์ ๋๋ค. CIM ๋๋ ์๊ฒฉ ๋ ์ง์คํธ๋ฆฌ ์๋น์ค๋ฅผ ์ฌ์ฉํ์ฌ ์ง์ ๋ ์ปดํจํฐ์ ์ค์น๋ .NET Framework ๋ฒ์ ์ ์ฐพ๊ณ (๋ค์ - ์ํํ ์์ ์ ํ์ ํ๊ธฐ ์ํด ํฌํธ ํ์ธ), ์ด๋ฅผ ๋ณด๊ณ ํ๊ณ ์ฐจ๋จ๋ ๋ฒ์ ์ ๋ํด ๋ณด๊ณ ํฉ๋๋ค. ๋ง์ฝ์ ์ด๋ ํ.
์ด๋ค์ ๋ ๋ฆฝ ์คํํ ๊ธฐ๋ฅ์ ๋๋ค. ๋ชจ๋์ ์ผ๋ถ๊ฐ ์๋๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๋ค์ ์ง๋ ๋ช ๋ ๋์ ์ ๊ธฐ์ ์ธ ์ ๋ฐ์ดํธ๋ฅผ ๊ฑฐ์ณค์ต๋๋ค.
๊ฐ๊ฐ์ ๋ฒ์ ์ ์ฒจ๋ถํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ง๊ธ์ ์์ค ์๋จ์ "๋ง์ง๋ง ์์ ๋ ์ง"๋ง ์์ต๋๋ค. ๊ทธ๋ค์ง ์ ์ฉํ์ง ์์ต๋๋ค ...
๋ด ์๊ฐ์ ๋ฐฐํฌ๋ ์ด ํ ๋ก ๊ณผ ๊ด๋ จ์ด ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์, git์ด ์ญํ ์ ํ์ง๋ง ๋ฌธ์ ๋ ์๋๋๋ค. PowerShell์ ์๊ณ ๋ ๋ฆฝ ์คํํ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ. Get-Command Get-Foo๋ฅผ ์คํํ ๋ ํจ์์ ๋ฒ์ ๋ฒํธ๋ฅผ ๋ณด๊ณ ์ถ์ต๋๋ค. ๊ทธ๊ฒ์ ๊ทธ๊ฒ๋งํผ ๊ฐ๋จํฉ๋๋ค. ํจ์๊ฐ ์ด๋ป๊ฒ ๋ฐฐํฌ๋์๋์ง๋ ์ค์ํ์ง ์์ต๋๋ค. ํจ์์ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ฃผ์ ํ๋ ๋ฐฉ๋ฒ์ ์๋ ค์ฃผ์ธ์.
๊ทธ๋ฆฌ๊ณ ์ ๋์ ์ผ๋ก ๋ช ํํ๊ฒ, ๋๋ ์ฌ์ฉ์ ๋๋ ์ฌ์ง์ด ๋ ์์ ์๊ฒ ์์ค๋ฅผ ์ถ์ ํ๊ณ ๋๊ธ์ด๋ ๋ฉ๋ชจ๋ฅผ ์ฐพ๋๋ก ๊ฐ์ํ๊ณ ์ถ์ง ์์ต๋๋ค.
๋๋ ํ์คํ ์ผ๋ถ ๋
๋ฆฝ ์คํํ ๊ธฐ๋ฅ์ ์์ฑ/์ฌ์ฉํ์ง๋ง ๋๋ถ๋ถ์ ๋ชจ๋์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋๋ถ๋ถ์ ๋
๋ฆฝ ์คํํ ๊ธฐ๋ฅ์ผ๋ก ์ฌ์ฉํ ์ ์๋ ์์์ ํ๋ฅ ํ๋ฌผ ๋๊ตฌ์
๋๋ค. ๋๋ ํญ์ ์ฃผ์ ๋ธ๋ก ๋ด์ .NOTES
์ ์๋ฏธ๋ก ์ ๋ฒ์ ๊ณผ ๋ณ๊ฒฝ ๋ก๊ทธ๋ฅผ ๋ฃ๊ณ ์์ ๋ธ๋ก์ [version]$Version
๋ฅผ ๋ฃ์ต๋๋ค [version()]
๋๋ [cmdletbinding(Version='01.00.0000')]
์ ๊ฐ์ ๊ฒ์ ๊ฐ๋ ๊ฒ์ ์ฅ๊ด์ผ ๊ฒ์
๋๋ค. ๋ง์ ์ฌ๋๋ค์ด psm1 ํ์ผ์ ์ฌ๋ฌ ๊ธฐ๋ฅ์ ๋ฃ์๋ค๋ ๊ฒ์ ์๊ณ ์๊ธฐ ๋๋ฌธ์ .VERSION๋ณด๋ค .VERSION์ด ๋ ์ข์ต๋๋ค(๊ทธ๋ ์ง๋ ์์ง๋ง).
git, btw๋ ์ฌ์ฉํ์ง๋ง ๊ฐ๋ณ ๊ธฐ๋ฅ์ ๋ณ๊ฒฝํ ๋๋ง๋ค ์ปค๋ฐํ์ง๋ ์์ต๋๋ค. ๋ชจ๋์ ๋ณ๊ฒฝํ ๋ ๋ฒ๋ค๋ก ๋ฌถ๊ณ ์ปค๋ฐํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ปค๋ฐ ๋ฉ์์ง๋ก ๋ชจ๋ ๋ฒ์ ์ ์ฌ์ฉํฉ๋๋ค. ๊ทธ๋, ๊ทธ๋, ๋๋ ์์, ๋ด๊ฐ ์ด์ํด.
์คํฌ๋ฆฝํธ๊ฐ $env:PATH
์ ์์ผ๋ฉด Get-Command์ ๋ํด ํ์๋ฉ๋๋ค. ๋ฐ๋ผ์ ๊ธฐ์กด ScriptFileInfo ๋ฉํ๋ฐ์ดํฐ๋ฅผ ๋ฒ์ ์ ํฌํจํ๋ ExternalScriptInfo ๋ฉค๋ฒ์ ๋งคํํ๋ ๊ฒ์ด ํฉ๋ฆฌ์ ์ผ๋ก ๋ณด์
๋๋ค.
์คํฐ๋ธ์ ๊ฐ์ ์ ์ฃผ์ํ์ญ์์ค. ์ฌ๋ฌ ๊ธฐ๋ฅ์ด ์๋ ๋จ์ผ ps1 ํ์ผ์ด ์์ ์ ์์ต๋๋ค. Get-Command๊ฐ ์คํฌ๋ฆฝํธ ํ์ผ์ ์ฐพ์ ์ ์๋ค๋ ๊ฒ์ ์ ๋ขฐํ๊ณ ์ถ์ง ์์ต๋๋ค. ์ ์ฅ, PowerShell ํ๋กํ ์คํฌ๋ฆฝํธ์์ ๋ฒ์ ์ด ์ง์ ๋ ํจ์๋ฅผ ์ ์ํ๊ณ ์ถ์ ์๋ ์์ต๋๋ค.
ํ์คํ ๋ด ํ๋กํ ์คํฌ๋ฆฝํธ์ ๋ฒ์ ๊ธฐ๋ฅ์ด ์์ต๋๋ค.
Version ์์ฑ์ด ์๋ System.Management.Automation.FunctionInfo ์ ํ์ด ์ด๋ฏธ ์์ต๋๋ค. ํจ์๊ฐ ๋ก๋๋ ๋ ๋ฒ์ ์์ฑ์ด ํจ์์ ๋ฉํ๋ฐ์ดํฐ์์ ์ฑ์์ง๋๋ก ํ๋ ๋ฐฉ๋ฒ์ด ํ์ํฉ๋๋ค.
์ข์ ํผ๋๋ฐฑ ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค! ์์ง ์ง๋ฌธ์ด ์์ต๋๋ค. PowerShell์ด โโ๊ฐ์ ์ด๋ฆ์ ๊ฐ์ง ์ผ๋ถ ํจ์๋ฅผ ์ฐพ์ ๊ฒฝ์ฐ ์ด๋ค ๋์์ด ์์๋ฉ๋๊น? ๋ ๋์ ๋ฒ์ ์ผ๋ก ๊ธฐ๋ฅ์ ์คํํ์๊ฒ ์ต๋๊น? ๋ฒ์๋ฅผ ๊ณ ๋ คํด์ผ ํฉ๋๊น(ํ์ฌ ๋ฒ์์์ ์ด์ ํจ์๋ฅผ ๋ก๋ํด์ผ ํจ - ์ ์ญ ๋ฒ์์์ ๋ ๋ง์ ์ ํจ์๋ฅผ ํธ์ถํด์ผ ํจ)? ์๋๋ฉด ์ ๋ณด ์์ฑ๋ง ๊ฐ๊ณ ์ถ์ต๋๊น?
์ด๊ฒ์ ๊ธฐ๋ฅ์ ์คํํ๊ฑฐ๋ ๋ฐฐํฌํ๋ ๊ฒ์ด ์๋๋๋ค. ๋ด๊ฐ ์ํ๋ ๊ฒ์ ๋ฒ์ ์ ๋ณด๋ฅผ ์ถ์ ํ๊ณ ๊ฒ์ํ๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํ์ฌ Get-Command๋ฅผ ์คํํ๊ฑฐ๋ Get-Function๊ณผ ๊ฐ์ ์ ๋ช ๋ น์ ์คํํ๋ฉด ํจ์์ ๋ํ ์ผ๋ถ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ๋ณผ ์ ์๋๋ก ํ๋ ๋ฉ์ปค๋์ฆ๋ฟ์ ๋๋ค. PowerShell ์คํฌ๋ฆฝํ ์ ํตํด ํ๋กํ ํ์ ์ ๋ง๋ค ์ ์๋ ๋ช ๊ฐ์ง ์์ด๋์ด๊ฐ ์์ต๋๋ค.
์ข์ ํผ๋๋ฐฑ ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค! ์์ง ์ง๋ฌธ์ด ์์ต๋๋ค. PowerShell์ด โโ๊ฐ์ ์ด๋ฆ์ ๊ฐ์ง ์ผ๋ถ ํจ์๋ฅผ ์ฐพ์ ๊ฒฝ์ฐ ์ด๋ค ๋์์ด ์์๋ฉ๋๊น? ๋ ๋์ ๋ฒ์ ์ผ๋ก ๊ธฐ๋ฅ์ ์คํํ์๊ฒ ์ต๋๊น? ๋ฒ์๋ฅผ ๊ณ ๋ คํด์ผ ํฉ๋๊น(ํ์ฌ ๋ฒ์์์ ์ด์ ํจ์๋ฅผ ๋ก๋ํด์ผ ํจ - ์ ์ญ ๋ฒ์์์ ๋ ๋ง์ ์ ํจ์๋ฅผ ํธ์ถํด์ผ ํจ)? ์๋๋ฉด ์ ๋ณด ์์ฑ๋ง ๊ฐ๊ณ ์ถ์ต๋๊น?
PS๊ฐ ๊ธฐ๋ฅ์ ์คํํ๋ ๋ฐฉ์์ ๋ณํ๋ฅผ ์ ์ํ ์ฌ๋์ ์๋ฌด๋ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ฐ๋ฆฌ๋ ๋จ์ง ๊ทธ๋ค์ ๋ฒ์ ์ ๋ฃ๊ณ ์ถ์ต๋๋ค. ์ ๋ณด ์ ๊ณต ๋ฐ ์ฌ๋ฌธ ๋ฐฉ๋ฒ.
๊ฐ์ฌ ํด์! ๋ค์ ์ง๋ฌธ์ด ์์ต๋๋ค. ์ผ๋ถ ๊ธฐ๋ฅ์ด ์๋ ํ์ผ์ ํ์ผ์ ๋ชจ๋ ๊ธฐ๋ฅ์ ๊ณตํต์ ์ธ ๋ฒ์ ์์ฑ์ ๊ฐ์ง ์ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ์ด๊ฒ์ ๊ณ ๋ คํด์ผํฉ๋๊น?
PowerShell ์คํฌ๋ฆฝํ ์ ํตํด ํ๋กํ ํ์ ์ ๋ง๋ค ์ ์๋ ๋ช ๊ฐ์ง ์์ด๋์ด๊ฐ ์์ต๋๋ค.
์์ ์์ ์์ด๋์ด๋ฅผ ๊ณต์ ํ ์ ์์ต๋๋ค.
๊ทธ๊ฒ ๋ด ๊ณํ์ด์ผ.
ํด๋์ ๋ฒ์ ๋๋ SymVer 2.0์ด์ด์ผ ํฉ๋๊น?
๋๋ ์ ์ ๋ ํจ์ ๋ฒ์ ๊ด๋ฆฌ๊ฐ ์ข์ ๊ฒ์ด๋ผ๋ ํ์ ์ ๊ฐ๊ฒ ๋์์ต๋๋ค.
@iSazonov ์ต์ ์ง๋ฌธ์ ๋ตํ๋ ค๋ฉด - ๋ง์ฝ ์ฐ๋ฆฌ๊ฐ ๊ทธ๊ฒ์ ๊ฐ๊ณ ์๋ค๋ฉด SymVer๋ฅผ ์ฌ์ฉํ์ง ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
๊ทธ๋ฆฌ๊ณ ํจ์ ํ์ผ๊ณผ ๊ด๋ จํ์ฌ - ๋๋ ์์ฑ์ด ํ์ผ๋ณ ์์ฑ์ด ์๋ ํจ์๋ณ๋ก ์๋ค๊ณ ์ฃผ์ฅํฉ๋๋ค. ์ค๋๋ ์ CMDLETBinding์ด ์๋ํ๋ ๊ฒ๊ณผ ๋งค์ฐ ์ ์ฌํฉ๋๋ค.
ํ๋กํ ํ์ ์ด ##11686์ ๋ค์ด์์ต๋๋ค.
PR์์ ์ํฐํฉํธ๋ฅผ ๋ค์ด๋ก๋ํ๊ณ ์๋ก์ด ์์ฑ์ผ๋ก ํ๋ ์ดํ ์ ์์ต๋๋ค.
๋ฌ์ฝคํ.
๊ทธ๊ฒ์ ๋ํด ์๊ฐํด๋ณด์ญ์์ค - ์คํฌ๋ฆฝํธ ๋ฒ์ ์ ํฌํจํ๋๋ก PSVersionAttribute๋ฅผ ํ์ฅํ์ง ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น? ์ฐ๋ฆฌ๊ฐ ๋ชจ๋๊ณผ (์ง๊ธ์ด์์ผ๋ฉด!) ํจ์์ ๋ฒ์ ์ ๋ง๋ ๋ค๋ฉด ์ ์คํฌ๋ฆฝํธ๋ ์ ๋ ๊น์?
PSVersionAttribute๋ ์คํฌ๋ฆฝํธ์ ์ ์๋ ๊ธฐ๋ฅ์ ๋ํ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ฌ์ฉ๋ ์๋ ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ค๋ฅธ ์ฌ๋์ด ๋ฌป๊ธฐ ์ ์... ํจ์ ์คํ์ ๋ฒ์ ์ ์ง์ ํ ์ ์์ต๋๊น?
์ฌ๋ฌ ๋ฒ์ ์ ํจ์๋ฅผ ๋ก๋ํ๊ณ ๊ธฐ๋ณธ์ ์ผ๋ก ์ต์ ๋ฒ์ ์ ์คํํ ์ ์์ง๋ง ์คํํ ํน์ ๋ฒ์ ์ ์๋ ค์ฃผ๋ -PSFunctionVersion ๊ณตํต ๋งค๊ฐ๋ณ์๊ฐ ์์ต๋๋ค.
์์ฌํ ์ฌ์ง ์์ด ๋ ๋ง์ ๋์์ด ์์ต๋๋ค. ํ์ง๋ง ๋ฒ์ ์ด ์ง์ ๋ ํจ์ ์คํ์ ์ ๊ณตํด์ผ ํฉ๋๊น?
[CmdletBinding()]
๊ฐ ํจ์์ ์คํฌ๋ฆฝํธ ๋ชจ๋์ ์ ์ฉ๋ ์ ์๋ ๊ฒ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ์์ฑ์ด๋ผ๋ฉด ํญ์ ์ฌ์ฌ์ฉํ ์ ์์ต๋๋ค. ํจ์์ ์คํฌ๋ฆฝํธ ๋ชจ๋์ ํญ์ [PSVersion()]
๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด๊ฒ์ ํฅ๋ฏธ๋ก์ด ์ ๊ทผ ๋ฐฉ์์ฒ๋ผ ๋ณด์
๋๋ค. ๐
๋๋ ์ฐ๋ฆฌ๊ฐ ์ด๋ฏธ ๋๋ถ๋ถ์ ๋ฒ์ ์ฝ๋๋ฅผ ๊ฐ์ง๊ณ ์๋ ๋ชจ๋์์ ์ด๋ฐ ์ข ๋ฅ์ ์ผ์ ๋ง์ด ์ฌ์ฉํ์ง ์์ ๊ฒ์ด๋ผ๊ณ ์์ํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ ๋ฆฝ ์คํํ ์คํฌ๋ฆฝํธ์ ๊ธฐ๋ฅ์ ๊ฒฝ์ฐ ์ด๊ฒ์ ์ค์ ๋ก ๋งค์ฐ ํฅ๋ฏธ๋ก์ธ ์ ์์ต๋๋ค.
์ด๊ฒ์ ๊ธฐ๋ฅ์ ์คํํ๊ฑฐ๋ ๋ฐฐํฌํ๋ ๊ฒ์ด ์๋๋๋ค. ๋ด๊ฐ ์ํ๋ ๊ฒ์ ๋ฒ์ ์ ๋ณด๋ฅผ ์ถ์ ํ๊ณ ๊ฒ์ํ๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํ์ฌ Get-Command๋ฅผ ์คํํ๊ฑฐ๋ Get-Function๊ณผ ๊ฐ์ ์ ๋ช ๋ น์ ์คํํ๋ฉด ํจ์์ ๋ํ ์ผ๋ถ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ๋ณผ ์ ์๋๋ก ํ๋ ๋ฉ์ปค๋์ฆ๋ฟ์ ๋๋ค. PowerShell ์คํฌ๋ฆฝํ ์ ํตํด ํ๋กํ ํ์ ์ ๋ง๋ค ์ ์๋ ๋ช ๊ฐ์ง ์์ด๋์ด๊ฐ ์์ต๋๋ค.
๊ธฐ๋ฅ ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ์ถ๊ฐํ๋ ค๋ ๊ฒฝ์ฐ ์์ํ ๋ฌธ์ํ๋ก ์ ํํ๋ ์ด์ ๋ ๋ฌด์์ ๋๊น? ํจ์ ๋ฒ์ ์ ์ง์ ํ๊ณ ์ฟผ๋ฆฌํ ์ ์๋ค๋ฉด ๋ฒ์ ๋ฒํธ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์คํ์ ํ์ฉํ๋ ๊ฒ์ด ํ๋ช ํ์ง ์์๊น์?
์ฌ๋ฌ ๋ฒ์ ์ ํจ์๋ฅผ ๋ก๋ํ๊ณ ์คํํ ๋ฒ์ ์ ์ ํํ๊ฑฐ๋ ์ฌ์ฉ์๊ฐ ๋ค๋ฅธ ๋ฒ์ ์ค์์ ์ ํํ์ฌ gcm์ผ๋ก ๋ณผ ์ ์๋ ํจ์ ๋ชฉ๋ก์ ๋ก๋ํ ๋ค์ ํด๋น ๋ฒ์ ์ ์คํํ ์ ์๋๋ก ํ๋ ๋ฐฉ๋ฒ์ ๋๋ค.
์ฌ๊ธฐ ScriptFileInfo ๋ช
๋ น์ ๊ธฐ๋ฐ์ผ๋ก ์์
ํ ๊ฐ๋
์ฆ๋ช
์ด ์์ต๋๋ค.
https://gist.github.com/jdhitsolutions/65070cd51b5cfb572bc6375f67bcbc3d
๋ด๊ฐ ์ค์ ๋ก ๋ชจ๋ธ๋งํ๊ฑฐ๋ ํ๋กํ ํ์ ์ ๋ง๋ค๋ ค๊ณ ํ๋ ๊ฒ์ ๊ฒฝํ์ ๋๋ค. ์ด๋ฏธ ์ ์ ํ ์ ํ์ด ์์ผ๋ฏ๋ก Get-Command๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๋ ธ์ถํ๊ณ ์ถ์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ํผํฉ๋ ํ์ผ์ ์ป์ต๋๋ค.
ํจ์๊ฐ ๋ชจ๋์ ์ํ๋ ๊ฒฝ์ฐ ๋ช ๋ น ๋ฒ์ ๊ด๋ฆฌ์ ์ ๊ฒฝ ์ฐ์ง ์๊ฒ ์ต๋๋ค. ๋ชจ๋์์ ์ฒ๋ฆฌํด์ผ ํฉ๋๋ค.
์์ PowerShell ๋ฉํ ๋ฐ์ดํฐ ์ ๋ณด๋ฅผ ์ถ๊ฐํ๊ณ ๊ฐ์ ธ์ค๊ธฐ ์ํ ๊ฐ๋ ์ฆ๋ช - PSFunctionInfo.format.ps1xml
์ข์ ์ ํ!
๊ทธ๋ ๋ค๋ฉด ๋์ผํ ๊ธฐ๋ฅ์ ์ฌ๋ฌ ๋ฒ์ ์ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ ๊น์?
ํน์ ๊ธฐ๋ฅ ๋ฒ์ ์ ์ด๋ป๊ฒ ๋ช
์์ ์ผ๋ก ๋ก๋ํฉ๋๊น?
ํน์ ๋ฒ์ ์ ํจ์๋ฅผ ์ด๋ป๊ฒ ๋ช
์์ ์ผ๋ก ์คํํฉ๋๊น?
@doctordns ๋ฌด์์ ์คํํ ์ง ํ์ ํ๊ณ ์ฌ๋ฌ ๋ฒ์ ์ ์ฒ๋ฆฌํ๋ ๊ฒ์ ๊ทํ์ ์ฑ ์์ ๋๋ค. ๋ด ํ๋กํ ํ์ ์ฝ๋๋ ๋จ์ํ FunctIon: Psdrive์ ํญ๋ชฉ์ ๋์ดํ๊ณ ๋ฉํ๋ฐ์ดํฐ ์ ๋ณด๋ฅผ ํ์ํ๋ ๊ฒ์ ๋๋ค. ๋ด๊ฐ ์๋ ํ psdrive์ ์ค๋ณต ๊ธฐ๋ฅ์ ๊ฐ์ง ์ ์์ต๋๋ค. ๋ด ๋ชฉํ๋ ๋ ๋ฆฝ ์คํํ ๊ธฐ๋ฅ์ด ๋ก๋๋ ๊ฒฝ์ฐ ๋ฒ์ ๋ฐ ๊ธฐํ ๋ฉํ ๋ฐ์ดํฐ ์ ๋ณด๋ฅผ ๊ฒ์ํ ์ ์๊ธฐ๋ฅผ ์ํ๋ ๊ฒ์ ๋๋ค.
PowerShell์ด โโ_scripts_์ ๋ํ _embedded_ PSScriptInfo ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ง์ํ๋ค๋ฉด ํ๋ฅญํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ง๋ง ... _function_ ์์ค์์๋ ์ด ์์ ์ ์ํํ์ง ๋ง์ญ์์ค.
PowerShell์ ํ์ฌ ๋ช ๋ น์ ๋ฒ์ ์ _๋ณด๊ณ _ํ์ง๋ง ์ค์ ๋ฒ์ ์ _module_์์ ๊ฐ์ ธ์ต๋๋ค. ๊ฐ ๊ธฐ๋ฅ์ ๋ํด ๋ณ๋์ ๋ฒ์ ์ ๊ฐ๋ ๊ฒ์ ๋์์ด ๋์ง ์์ ๋ฟ ์๋๋ผ ํผ๋์ค๋ฌ์ธ ๋ฟ์ ๋๋ค. ์ฝ๋๋ฅผ ๋ฐฐํฌํ๋ ๋ฐฉ๋ฒ์ ๊ด๊ณ์์ด ํ์ ํ์ผ "๋ฉ์ด๋ฆฌ"๋ฅผ ๋ฐฐํฌํ์ง ์์ผ๋ฉฐ ์ฌ์ฉ์๋ ๊ฐ๋ณ ๊ธฐ๋ฅ(๋๋ ์ ์ฒด ํ์ผ์ ์ ์ธํ ์ด๋ค ๊ฒ๋ ๋ก๋ํ ์ ์์)์ ๋ก๋ํ ์ ์์ต๋๋ค.
๋ชจ๋๊ณผ ์คํฌ๋ฆฝํธ์ฉ ๋ฒ์ ์ด ํ์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ํจ์๋ ํจ์๋ฅผ ํฌํจํ๋ _module_์์ ํด๋น ๋ฒ์ ์ ์์ํด์ผ ํฉ๋๋ค. ์คํฌ๋ฆฝํธ์๋ ์์ฒด ๋ฒ์ ์ด ํ์ํฉ๋๋ค.
์ฌ๋ฌ ๊ธฐ๋ฅ์ด ํฌํจ๋ .ps1 ํ์ผ์ด ์๋ ๊ฒฝ์ฐ ํ์ฅ์๋ฅผ ๋ณ๊ฒฝํด์ผ ํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์ฌ์ฉ์๊ฐ ํด๋น ๊ธฐ๋ฅ์ ๋ฐ๊ฒฌํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์ผ๋ฏ๋ก ๋ฒ์ ๊ด๋ฆฌ๋ ์ค์ํ์ง ์์ต๋๋ค. ์ฐ๋ฆฌ๋ _functions_์ ๋ชจ๋ ์ด์ธ์ ๋ค๋ฅธ ๊ฒ์ผ๋ก ๋ฐฐํฌํ๋ ค๋ ์ฌ๋์ ์ ๊ทน์ ์ผ๋ก ๊ถ์ฅํ์ง ์์์ผ ํฉ๋๋ค. ๐คจ
@Jaykul ํจ์๊ฐ ๋ชจ๋๊ณผ ํจ๊ป ์ ๊ณต๋๋ ๊ฒฝ์ฐ ๋ชฉํ๊ฐ ๋์ด์ผ ํ๋ ๋ชจ๋ ๋ฒ์ ์ด ์ค์ํ๋ค๋ ๋ฐ ๋์ํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ ๋ฆฝ ์คํํ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ ์ฌ์ฉ์๊ฐ ๋ง์ด ์์ต๋๋ค. ํน์ ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํ๊ธฐ ์ํด ์์ฑ๋ ํ๋กํ ๋๋ ์ ์ ๋ก๋๋์์ ์ ์์ต๋๋ค. ๋ด๊ฐ ํ๋ ๋ชจ๋ ์์ ์ ๋ชจ๋์ ๋ก๋ํ๊ณ ๋น๋ํ ํ์๋ ์์ต๋๋ค. ๋ด๊ฐ ๊ด๋ฆฌํ๊ณ ์ถ์ ๊ฒ์ ์ด๋ฌํ ๋น ๋ชจ๋ ๊ธฐ๋ฅ์ ๋๋ค. ๋ชจ๋์์ ๋ก๋๋ ๋ช ๋ น๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ฒ์ ๋ฐ ๊ธฐํ ๋ฉํ๋ฐ์ดํฐ ์ ๋ณด๋ฅผ ์บก์ฒํ๋ ๋ฐฉ๋ฒ์ ์ํฉ๋๋ค. ์๋ง๋ ๋๋ต์ ๋ด ํ๋กํ ํ์ ๊ณผ ๊ฐ์ ์๋ก์ด ๋ช ๋ น์ผ ๊ฒ์ ๋๋ค.
@Jaykul ์ ์๊ฐ์ ์ฐ๋ฆฌ ์ค ๋ช๋ช์ ์ด๋ฏธ ๊ทธ๊ฒ์ด ์ฐ๋ฆฌ์๊ฒ ์ ์ฉํ ๊ฒ์ด๋ฉฐ ์ฐ๋ฆฌ๊ฐ ์ค์ ๋ก ๋จ์ผ ๊ธฐ๋ฅ์ ๋ฐฐํฌํ๊ณ ์๋ค๊ณ ๋งํ์ต๋๋ค.
IMO, ๋ชจ๋ ๊ฒ์ ๋ชจ๋์ด ํ์ํ ๊ฒ์ ์๋๋๋ค.
์ ์๋ ๊ธฐ๋ฅ์ด ์ ์ฉํ์ง ์์ ์ ์์ต๋๋ค. ๊ด์ฐฎ์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๊ฒ์ ์ฐ๋ฆฌ ์ค ๋ค๋ฅธ ์ฌ๋๋ค์๊ฒ ์์ต๋๋ค.
๊ธฐ๋ฅ ๋ฒ์ ๊ด๋ฆฌ๋ผ๋ ์์ด๋์ด๊ฐ ๋ง์์ ๋ญ๋๋ค. ๊ทธ๋ฌ๋ ์ฐ๋ฆฌ๊ฐ ์๋ฃจ์ ์ ํ๋ค๋ฉด ์ฃผ์์ผ๋ก ํ ์ ์๋ ์ฝ๊ฐ์ ๋ฌธ์ ์ด์์ด์ด์ผ ํฉ๋๋ค. ๋ค๋ฅธ ๋ฒ์ ์ ๋ก๋๋ฅผ ์ ์ดํ ์ ์๋ ๋ฅ๋ ฅ์ด ์๋ค๋ฉด ์ด๊ฒ์ ์ง๊ธ์ผ๋ก์๋ ์ฐ๋ฆฌ๊ฐ ํ ์ ์๋ ๊ธฐ๋ฅ์ ๋๋ค.
7.0์์๋ ์ด ์์ด๋์ด๋ฅผ ์ญ์ ํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ฐ๋ฆฌ๋ ์๋ก์ด ๊ธฐ๋ฅ์ ๋ฏน์ค์ ๋ฐ์ด๋ฃ๊ธฐ์๋ RTM์ ๋๋ฌด ๊ฐ๊น์ต๋๋ค. NT 5days์ ๋ํ ๋์ ๊ธฐ์ต์ด ์์ต๋๋ค!! ์ด๊ฒ์ 7.1๋ก ๋๋๋ฆด ์ ์๋ค๋ฉด ์์ ํ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ๋ํด ๋ ์์ธํ ์ด์ผ๊ธฐํฉ์๋ค. ๋ง์ง๋ง ์๊ฐ์ ์ด๊ฒ์ ๋ฐ์ด๋ด๋ ค๊ณ ํ๋ ๊ฒ์ ์ค๋ง์ ์ผ๊ธฐํ๋ ํ์คํ ๋ฐฉ๋ฒ์ ๋๋ค.
์ด๋ฐ ์ผ์ด ๋ฐ์ํ๋ฉด 7.1 ์ถ๊ฐ ์ฌํญ์ ๋๋ค. ์ฌ๋ฐ๋ฅธ ๋ฒ์ ์ ๋ก๋ํ๋ ๋ฌธ์ ๋ ์ฌ์ฉ์์๊ฒ ๋ฌ๋ ค ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ค์ ๋งํ์ง๋ง, ๋ด๊ฐ ์๊ตฌํ๋ ๊ฒ์ ์์ค๋ฅผ ํํค์น ํ์ ์์ด ๋ก๋๋ ๋ ๋ฆฝ ์คํํ ํจ์์์ ๋ฒ์ ์ ๋ณด๋ฅผ ๊ฒ์ํ๋ ๋ฐฉ๋ฒ์ ๋ํ ๊ฒ์ ๋๋ค.
7.1์ ๋์ํฉ๋๋ค.
๋์์ ๋๋ ์ฌ์ฉ์๋ฅผ ์๊ณ ์์ผ๋ฉฐ ๋ฌธ์ ์๋ฃจ์ ์ด ๋ฒ์ ๊ธฐ๋ฐ ๋ฐํ์ ๊ธฐ๋ฅ์ ๋ํ ์์ฒญ๋ง ์์ฑํ ๊ฒ์ด๋ผ๊ณ ํ์ ํฉ๋๋ค. ๋๋ ์ฐ๋ฆฌ๊ฐ ์๋ฒฝํ๊ณ ์ฐ์ํ ๋ฟ๋ง ์๋๋ผ ์์ง๋์ด๋ง๋ ์๋ฃจ์ ์ ๊ณ ๋ คํ๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. .
์ฐ๋ฆฌ๋ ์ด๋ฏธ ๋ ๋ฆฝ ์คํํ ๊ธฐ๋ฅ์ ์ํ ์๋ฃจ์ ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๋ง์ง๋ง์ ๋ก๋๋ ๊ฒ์ด ์ด๊น๋๋ค. :-)
๋ค๋ฅธ ๋ฒ์ ๋ฑ์ ๋ก๋๋ฅผ ์ ์ดํ๋ โโ๊ธฐ๋ฅ์ด ์์ผ๋ฉด ํ์ฌ๋ก์๋ ์ด ๊ธฐ๋ฅ ์์ด๋ ํ ์ ์๋ ๊ธฐ๋ฅ์ ๋๋ค.
์ด๋ ๊ฒ ํ๋ฉด ํธ์ถ๋ ๋๋ง๋ค ํจ์์ ๋ฒ์ ์ ํ์ธํด์ผ ํฉ๋๋ค. ์ด๊ฒ์ ์ฑ๋ฅ์์ ์ด์ ๋ก ์์ ํ ๋ฐ์๋ค์ผ ์ ์์ต๋๋ค. ๋ชจ๋์ ์ต์์ ์ ์ถฉ์์ ๋๋ค. ๋ฒ์ ํ์ธ์ ๋ชจ๋ ๋ก๋ ์ ํ ๋ฒ ์ํ๋ฉ๋๋ค.
@SteveL-MSFT PowerShell ์์ํ ๊ฒฐ๋ก ์ ์ํ ์ค๋น๊ฐ ๋์๋ค๊ณ ์๊ฐํฉ๋๋ค. ํ๋กํ ํ์ #11686.
์คํฌ๋ฆฝํธ์ฉ ๋ฒ์ ์ด ์์ง์ ์๋ ๊ฒ์ด ์ ์ฉํ๋ค๋ ๋ฐ ๋ชจ๋ ๋์ํ ๊ฒ ๊ฐ์ต๋๋ค.
๋ชจ๋ ๊ฐ๋
์ด ์กด์ฌํ๊ธฐ ๋๋ฌธ์ ๊ธฐ๋ฅ์ ๋ฒ์ ์ด ์์ฌ๋ฉ๋๋ค.
์ผ๋ฐ์ ์ธ ์ ํ์ ๋ก๋๋ ์คํฌ๋ฆฝํธ ๋ฐ ๊ธฐ๋ฅ์ ๋ฒ์ ๋ง ๋ณผ ์ ์๊ณ import-module์ด ์ํํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ํ์ํ ๋ฒ์ ์ ๋ก๋ํ์ง๋ง get-module์๋ ๋ช ์์ ์ธ ๋ฒ์ ๋งค๊ฐ๋ณ์๊ฐ ์์ต๋๋ค.
์ด๊ฒ์ ์ง๋์น๊ฒ ์๊ฐํ๊ฑฐ๋ ํ์ ์ด์์ผ๋ก ๋ณต์กํ๊ฒ ๋ง๋ค์ง ๋ง์ญ์์ค. ๋ชจ๋๊ณผ ํจ๊ป ์ ๊ณต๋๋ ๊ธฐ๋ฅ์ ๋ชจ๋์ ์ํฉ๋๋ค. ๋ง์นจํ. ๊ถ์ฅ๋๋ ๋ชจ๋ฒ ์ฌ๋ก์ ๋๋ค. ๊ทธ๋ฌ๋ ํ๋ก๋์ ์์ ์ฌ์ฉํ ์ ์๋ ๋ชจ๋ ๊ธฐ๋ฅ์ด ๋ชจ๋๊ณผ ํจ๊ป ๋ฐฐํฌ๋๋ ๊ฒ์ ์๋๋๋ค. ๋๋ ๊ทธ๊ฒ์ด ์ด๋ป๊ฒ ๋ฐฐํฌ
Get-Command๊ฐ ์ด ์ ๋ณด๋ฅผ ์์งํ๋ ๋๊ตฌ๊ฐ ๋๊ธฐ๋ฅผ ํฌ๋งํ์ง๋ง ๋ ๋ฆฝ ์คํํ ๊ธฐ๋ฅ ๊ด๋ฆฌ๋ฅผ ์ํด ์์ ํ ๋ณ๋์ ๊ฒ์ผ๋ก ๋ถ๋ฆฌํด์ผ ํ ์๋ ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์๋ง๋ ๊ทธ ๋๋ต์ ์ด ๋ฌธ์ ๊ฐ ํด๊ฒฐํ๊ธฐ ์ํด ์ปค๋ฎค๋ํฐ์ ๋งก๊ธฐ๋ ๊ฒ์ด ๊ฐ์ฅ ์ข๋ค๋ ๊ฒ์ ๋๋ค. ์ด๋ค ๊ฒฝ์ฐ์๋ ์๋ฃจ์ ์ ์ ์์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ฌ๊ธฐ์ ์ ์งํ ์ฌ์ค์ ๋ํธ ์์ฑ ๊ธฐ๋ฅ์ด ์ฌ๋ฐ๋ฅธ ๋ฐฉํฅ์ด ์๋๋ฉฐ ๋ชจ๋ ์์คํ ์ด v2์ ๋์์ ๋๋ถํฐ ๊ถ์ฅ๋์ด์๋ ์ ๋๋ค๋ ๊ฒ์ ๋๋ค. ์๊ฒฉ์ผ๋ก ์ฌ์ฉํ ์ ์๋ ์ ์ผํ ์๊ฐ์ v1์์์์ต๋๋ค.
์ด์ ์ฐ๋ฆฌ ๋ชจ๋๊ฐ ์๊ณ ์๋ฏ์ด ๋ชจ๋ ๊ธฐ๋ฅ์ ์ค์ ๋ก๋ ํ๋กํ์ ์ผ๋ถ๋ก ๋ก๋ํ๊ฑฐ๋(์ด๋ฌํ ๊ธฐ๋ฅ์ ํฌํจํ๋ ๋ชจ๋์ ๋ก๋ํด์ผ ํจ) ๋ ์ฌ์ด ์ ์ง ๊ด๋ฆฌ๋ฅผ ์ํด ๋ ํฐ ์คํฌ๋ฆฝํธ์ ์ผ๋ถ๋ก ์ฌ์ฉํ๋ ๊ธฐ๋ฅ์ ํฌํจํ์ฌ ๋ชจ๋ ๋ด์ ๋ฐฐ์น๋์ด์ผ ํฉ๋๋ค. ๋๋ xyz ์คํฌ๋ฆฝํธ์์ ์ฌ์ฉํด์ผ ํ๋ ๋จ์ผ ๊ธฐ๋ฅ๋ ์์ต๋๋ค.
๋๋ ์ด ๋ณ๊ฒฝ์ด ํจ์ ์ ์์ ์ ์๋ [Version]
์์ฑ์ ์ถ๊ฐํจ์ผ๋ก์จ ์ด์ ๋ณด๋ค ์ธ์ด๋ฅผ ์ฌ์ฉํ๋ ์ฌ๋๋ค์๊ฒ ๋ ๋ง์ ํผ๋์ ์ค ๊ฒ์ด๋ผ๋ ๊ฒ์ ์ ์ ์์ต๋๋ค. ๋ง์ ์ฌ๋๋ค์ ์ํํ ๋ ๋ชจ๋ ๋ฐ ํจ์ ๋ฒ์ ์ ์ค์ ํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค ์ ์ ํ๊ณ ์ค์ ๋ก ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ์ฝ๋ ๋ชจ๋์ ๊ตฌ์ถํฉ๋๋ค.
๋ค, ์ด๊ฒ์ ๋น์ ์ด psd1๊ณผ psm1์ ๊ฐ์ง๊ณ ์์ด์ผ ํ๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ ์ ํ ๋ฐ๊ฒฌ๊ณผ ์ ์ง๋ณด์๋ฅผ ์ํด 2๊ฐ์ ํ์ผ์ ๊ด๋ฆฌ์ ๋ํ ํฐ ์๊ตฌ๊ฐ ์๋๋๋ค.
์์๋ค์ํผ ์ ๋ ๊ฐ์ธ์ ์ผ๋ก ์ด ๋ณ๊ฒฝ ์ฌํญ์ ๋์ํ์ง ์์ผ๋ฉฐ ๋์ ์ง์คํด์ผ ํ ๋ ๋์ ์ฌํญ์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋ค, ์ด๊ฒ์ ๋น์ ์ด psd1๊ณผ psm1์ ๊ฐ์ง๊ณ ์์ด์ผ ํ๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ ์ ํ ๋ฐ๊ฒฌ๊ณผ ์ ์ง๋ณด์๋ฅผ ์ํด 2๊ฐ์ ํ์ผ์ ๊ด๋ฆฌ์ ๋ํ ํฐ ์๊ตฌ๊ฐ ์๋๋๋ค.
์, ๊ทธ๊ฒ์ ํฐ ์๊ตฌ์ ๋๋ค. ๊ด๋ฆฌ์ ์คํฌ๋ฆฝํฐ๋ฅผ ๊ฐ๋ฐ์๋ก ๋ง๋ค๋ ค๋ ์๋๋ ์ง์ ์ฅ๋ฒฝ์ ํฌ๊ฒ ๋์ ๋๋ค.
"์ค ์ด๊ฒ์ ์ฌ๊ธฐ์ ๋ณต์ฌํ๊ณ ๊ฑฐ๊ธฐ์ ๋ณต์ฌํ ๋ค์ ๊ฐ์ ธ์์ผ ํฉ๋๋ค"๋ผ๊ณ ๋งํ๋ ๊ฒ์ "์ด๊ฒ์ ๋ณต์ฌํ์ฌ run.ps1์ด๋ผ๋ ํ์ผ์ ๋ถ์ฌ๋ฃ๊ณ ,\run์ ์ ๋ ฅํ๋ ๊ฒ๋ณด๋ค ํจ์ฌ ๋ ๋ณต์กํ๊ณ ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ธฐ ์ฝ์ต๋๋ค. .ps1".
์ด๊ฒ์ ์ฌ์ํ ๋ณ๊ฒฝ์ด๋ฉฐ ์ผํญ ์ฐ์ฐ์ ๋๋ null-coalescing(๋๋ ์์ง ์ดํดํ์ง ๋ชปํจ) ๋๋ ๊ฐ๋ฐ์์ธ ์ฌ๋ฌ๋ถ์ ์ํด ๋ง๋ค์ด์ง ๋ค๋ฅธ ๋ง์ ์ต๊ทผ ๋ณ๊ฒฝ๋ณด๋ค ์บ์ฃผ์ผ/๊ด๋ฆฌ์ ์คํฌ๋ฆฝํฐ์๊ฒ ํจ์ฌ ๋ ๋์์ด ๋ฉ๋๋ค. ๊ทธ๊ฒ์ ๋ํด ๋งํ๋ฏ์ด ๊ธฐ๋ฅ ๋ฒ์ ์ ๋ํด ๋งํ ์ ์์ต๋๋ค. ๋ง์์ ๋ค์ง ์์ผ๋ฉด ์ฌ์ฉํ์ง ๋ง์ญ์์ค.
@SteveL-MSFT ๋๋ PowerShell ์์ํ๊ฐ ์คํฌ๋ฆฝํธ ๋ฐ ๋ ๋ฆฝ ์คํํ ๊ธฐ๋ฅ์ ๋ํ ๋ฒ์ ์ง์ ์์ฒญ์ ๋ณผ ์ ์๋ค๊ณ ๋ฏฟ์ต๋๋ค. ํ๋กํ ํ์ ์ #11686์ ์์ต๋๋ค.
์ ์งํ ์ฌ์ค์ ๋ํธ ์์ฑ ๊ธฐ๋ฅ์ด ์ฌ๋ฐ๋ฅธ ๋ฐฉํฅ์ด ์๋๋ผ๋ ๊ฒ์ ๋๋ค.
๊ทธ๋ฌ๋ ์ฌ๋๋ค์ ๊ทธ๋ ๊ฒ ํ๋ฉฐ ์ด์จ๋ ์ด ์์ฒญ์ ์ ์ผํ ์ฌ์ฉ ์ฌ๋ก๋ ์๋๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ชจ๋ ์์คํ ์ด v2์ ๋์์ ๋ ๋ช ๋ ๋์ ๊ถ์ฅ๋์ด์๋ ์ ๋์์ต๋๋ค. ์๊ฒฉ์ผ๋ก ์ฌ์ฉํ ์ ์๋ ์ ์ผํ ์๊ฐ์ v1์์์์ต๋๋ค.
์ด์ ์ฐ๋ฆฌ ๋ชจ๋๊ฐ ์๊ณ ์๋ฏ์ด ๋ชจ๋ ๊ธฐ๋ฅ์ ์ค์ ๋ก๋ ํ๋กํ์ ์ผ๋ถ๋ก ๋ก๋ํ๊ฑฐ๋(์ด๋ฌํ ๊ธฐ๋ฅ์ ํฌํจํ๋ ๋ชจ๋์ ๋ก๋ํด์ผ ํจ) ๋ ์ฌ์ด ์ ์ง ๊ด๋ฆฌ๋ฅผ ์ํด ๋ ํฐ ์คํฌ๋ฆฝํธ์ ์ผ๋ถ๋ก ์ฌ์ฉํ๋ ๊ธฐ๋ฅ์ ํฌํจํ์ฌ ๋ชจ๋ ๋ด์ ๋ฐฐ์น๋์ด์ผ ํฉ๋๋ค. ๋๋ xyz ์คํฌ๋ฆฝํธ์์ ์ฌ์ฉํด์ผ ํ๋ ๋จ์ผ ๊ธฐ๋ฅ๋ ์์ต๋๋ค.
๋๋ ์ด ๋ณ๊ฒฝ์ด ํจ์ ์ ์์ ์ ์๋
[Version]
์์ฑ์ ์ถ๊ฐํจ์ผ๋ก์จ ์ด์ ๋ณด๋ค ์ธ์ด๋ฅผ ์ฌ์ฉํ๋ ์ฌ๋๋ค์๊ฒ ๋ ๋ง์ ํผ๋์ ์ค ๊ฒ์ด๋ผ๋ ๊ฒ์ ์ ์ ์์ต๋๋ค. ๋ง์ ์ฌ๋๋ค์ ์ํํ ๋ ๋ชจ๋ ๋ฐ ํจ์ ๋ฒ์ ์ ์ค์ ํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค ์ ์ ํ๊ณ ์ค์ ๋ก ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ์ฝ๋ ๋ชจ๋์ ๊ตฌ์ถํฉ๋๋ค.๋ค, ์ด๊ฒ์ ๋น์ ์ด psd1๊ณผ psm1์ ๊ฐ์ง๊ณ ์์ด์ผ ํ๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ ์ ํ ๋ฐ๊ฒฌ๊ณผ ์ ์ง๋ณด์๋ฅผ ์ํด 2๊ฐ์ ํ์ผ์ ๊ด๋ฆฌ์ ๋ํ ํฐ ์๊ตฌ๊ฐ ์๋๋๋ค.
์, ํ์ง๋ง ์ด๊ฒ์ ๊ด๋ จ์ด ์์ต๋๋ค. ์๋ฌด๋ ์ฐ๋ฆฌ๊ฐ ๋ชจ๋์ ๋ฒ์ ํํด์๋ ์ ๋๋ค๊ณ ์ฃผ์ฅํ์ง ์์ต๋๋ค. ;-)
์์๋ค์ํผ, ์ ๋ ๊ฐ์ธ์ ์ผ๋ก ์ด ๋ณ๊ฒฝ ์ฌํญ์ _๋์ํ์ง ์์ผ๋ฉฐ_ ๋์ ์ง์คํด์ผ ํ ๋ ๋์ ์ฌํญ์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋น์ ์ ๊ทธ๊ฒ์ ์ฌ์ฉํ ํ์๊ฐ ์์ต๋๋ค. ์ค์ ๋ก [CmdletBinding()] ๋๋ ๋งค๊ฐ ๋ณ์ ์งํฉ์ ์ฌ์ฉํ๋๋ก ๊ฐ์๋์ง๋ ์์ต๋๋ค.
๋ช
๋ น ๋ฐ cmdlet์๋ ๋ฒ์ ์ด ์์ต๋๋ค.
ํจ์ ์์ฒด์ ๋ฒ์ ์ด ์๋ ๊ฒฝ์ฐ _ํด๋น ํจ์๊ฐ ๋ชจ๋ ๋ด์ ์๋์ง ์ฌ๋ถ์ ์๊ด์์ด_ ์ด๋ ๋จ์ํ ์ฌ์ํ์ง๋ง ์ ์ฉํ ๋ฌธ์ ์์ ์
๋๋ค. ๋๋ ๊ทธ๋ค ์์ ์ ๊ฐ๋ณ ๋ชจ๋์ ์ ๋นํํ์ง ์๋ ๋ค์ํ๊ณ ๊ด๋ จ ์๋ ๋๊ตฌ๋ก ์๋ง์ ๋ชจ๋์ ๋ง๋ค์์ต๋๋ค. ๋ด ๋ชจ๋์ด MiscStuff 1.1.0002
์ด๋ฉด ๋ฐฐํฌ ๋ถ๋ถ์ ์ข์ต๋๋ค. ๋๋ ๊ทธ๊ฒ์ ์ฌ์ฉํ๋ค. ๋ด๋ถ์ 30๊ฐ์ ํจ์๊ฐ ์๊ณ ๋ด๊ฐ Do-Thing 7.9.0
์ฌ์ฉํ๊ณ ์๋์ง ๋น ๋ฅด๊ฒ ํ์ธํ๊ณ ์ด๋ฅผ ๋ด ๋ณ๊ฒฝ ๋ก๊ทธ์ ํญ๋ชฉ๊ณผ ์ฐ๊ด์ํฌ ์ ์๋ค๋ฉด(๊ทธ๋ ๊ฒ ํฉ๋๋ค!) ์ด๊ฒ์ ์ํ์ง ์๋ ์ฌ๋๋ค์ด ์๊ตฌํ์ง ์์ ๊ฒ์
๋๋ค.
@PowerShell/powershell-committee๊ฐ ์ด๋ฅผ ๊ฒํ ํ์ผ๋ฉฐ ์คํฌ๋ฆฝํธ ๊ธฐ๋ฅ์ ๋ํ ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ์ํ ์ ์ ํ ์๋ฃจ์ ์ ๋ชจ๋์์ ์ด๋ฅผ ๋ํํ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๋ํ ์คํฌ๋ฆฝํธ ํจ์๊ฐ ๋ชจ๋ ๋ด์ ์์ง๋ง ๊ณ ์ ํ ๋ฒ์ ์์ฑ์ด ์๋ ๊ฒฝ์ฐ ์์๋๋ ๋์์ด ๋ฌด์์ธ์ง ๋ช ํํ์ง ์์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ด ์ ํน์ฑ์ ์กด์คํ๊ธฐ ์ํด ์ ๋ฐ์ดํธํด์ผ ํ๋ PowerShell, PowerShellGet ๋ฐ PSGallery์ ๋ค๋ฅธ ๋ถ๋ถ์ ๋ํ ์ฐ๋ ค๊ฐ ์์ต๋๋ค. ๋จ์ผ ์คํฌ๋ฆฝํธ ํ์ผ ๋ ํด๋(๋ชจ๋)๋ฅผ ์ ๋ฌํ ์ ์๊ธฐ๋ฅผ ์ํ๋ ๊ฒฝ์ฐ zip/nupkg ๋ชจ๋์ ์ง์ ๊ฐ์ ธ์ค๊ณ .ps1์ ๋ชจ๋๋ก ์ฝ๊ฒ
๊ฐ๋ฐ์๊ฐ ์๋ ๊ด๋ฆฌ์ ์คํฌ๋ฆฝํฐ ๋ก์ #7259์ ์ด ์์ฒญ(#11667)์ด ์๋ก ๊ด๋ จ์ด ์๋ค๊ณ ์๊ฐํ์ง ์์ต๋๋ค.
๊ด๋ฆฌ์ ์คํฌ๋ฆฝํฐ ๋ก์ ๋๋ ๋ชจ๋์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ฐ์ง ์์ ๊ฒ์ ๋๋ค. ๋์๋ ๊ด๋ จ์ด ์์ต๋๋ค. ๊ทธ๊ฒ์ ๋์๊ฒ ๊ฐ์น๋ฅผ ์ ๊ณตํ์ง ์์ต๋๋ค. ๊ฐ๋ฐ์์๊ฒ๋ ์ค๋ฒํค๋์ ๋๋ค. ๋ชจ๋์ ๋น์คํํฐ์ ๋๋ค. (๋ ๋ฟ๋ง ์๋๋ผ ๋๋ถ๋ถ์ ๊ด๋ฆฌ์ ์คํฌ๋ฆฝํธ ์์ฑ์๋ฅผ ์ํ ๊ฒ์ ๋๋ค.)
๊ฐ๋ฐ์๊ฐ ์๋ ๊ด๋ฆฌ์ ์คํฌ๋ฆฝํฐ์ ๊ฒฝ์ฐ - ์์ํ๋ ๊ธฐ๋ฅ/ํํฐ์ ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ์ด๋ป๊ฒ ์ ์ํฉ๋๊น?
๋ฐ๋๋ ์๋์ง๋ง... ๋ฒ์ ๊ด๋ฆฌ ์์ฒด๋ ๋์ฒด๋ก ๊ฐ๋ฐ์ ๊ฐ๋ ์ ๋๋ค. ๋๋ ๋น์ ์ด ๊ฐ๋ฅํ ๋ชจ๋ ์ฅ์์์ ์ ์ฌ๊ธฐ์ ์ด โโ์ ์ ๊ทธ๋ฆฌ๋ ค๊ณ ํ๋์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ๐
์์ญ ๊ฐ์ ๋ ๋ฆฝ ์คํํ ๊ธฐ๋ฅ๊ณผ ์คํฌ๋ฆฝํธ๋ฅผ ์ถ์ํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋ชจ๋ ์์ด. ์ด๊ฒ์ ์ ์ ์ฌ๋ฌ ๋ค๋ฅธ ์ธ๊ธฐ ์๋ ๋ธ๋ก๊ฑฐ/์ถํ์๋ค์ ์ด์ ์๊ฒฌ์์ ์ด๋ฏธ ๋ค๋ค์ต๋๋ค.
#7259์ ์ด ์์ฒญ(#11667)์ ์๋ฌด ์๊ด์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋ค ์ ๋ ์์งํ ์ฐ๊ฒฐ์ด ์ ์๋๋ค์.
๋๋ ๋ชจ๋์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ฐ์ง ์์ ๊ฒ์ ๋๋ค.
FWIW์์๋ ํ์ฅ์๋ฅผ psm1
ํ๊ณ (์ ํ์ ์ผ๋ก) New-ModuleManifest
ํฉ๋๋ค. ๊ทธ๊ฒ์ ๋ง์ ๊ฒ์ด ์์ต๋๋ค.
๋์๋ ๊ด๋ จ์ด ์์ต๋๋ค. ๊ทธ๊ฒ์ ๋์๊ฒ ๊ฐ์น๋ฅผ ์ ๊ณตํ์ง ์์ต๋๋ค.
๋ค๋ฅธ ์ฌ๋๋ค์ด ์๋นํ ์ ์๋๋ก ๊ฒ์ํ๋ ๊ฒฝ์ฐ ํ์คํ ๊ฐ์น๊ฐ ์์ต๋๋ค. ๋ชจ๋์ ๋ํ ๋ฒ์๊ฐ ์๋ํ๋ ๋ฐฉ์์ ๋๊ตฐ๊ฐ์ ์ ์ญ ์ธ์ ์ํ๋ฅผ ๋ฐ๋ ๊ฒ์ ํจ์ฌ ๋ ์ด๋ ต๊ฒ ๋ง๋ค๊ณ ๊ทธ ๋ฐ๋์ ๊ฒฝ์ฐ๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค. ์ด๋ฅผ ํตํด ๊ธฐ๋ฅ์ ํ๊ฒฝ์ ์์์น ๋ชปํ ์ฐจ์ด์ ๋ํด ํจ์ฌ ๋ ํ๋ ฅ์ ์ ๋๋ค.
์ญ์ทจํ๊ธฐ๋ ํจ์ฌ ์ฝ์ต๋๋ค. ํจ์๋ฅผ ์คํฌ๋ฆฝํธ๋ก ๋ฆด๋ฆฌ์คํ๋ ๊ฒฝ์ฐ ์ฌ๋๋ค์ ์ ์์ค๋ฅผ ์์ฑํด์ผ ํ๋ฉฐ ์์น๋ฅผ ์๊ณ ์ ์์ฑํ ๋ค์ ๋ช ๋ น์ ์ฌ์ฉํด์ผ ํฉ๋๋ค. ๋ชจ๋๋ก ์ถ์ํ๋ฉด ์ฌ๋๋ค์ด ๋ฏธ๋ฆฌ ๋ฐฐํฌํ๊ณ ์ํ ๋๋ง๋ค ํธ์ถํ ์ ์์ต๋๋ค.
์์ํ๋ ๊ธฐ๋ฅ/ํํฐ์ ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ์ด๋ป๊ฒ ์ ์ํฉ๋๊น?
๊ฐ๋ณ ๊ธฐ๋ฅ์ ๋ํด ๋ฒ์ ๊ด๋ฆฌ๊ฐ ๊ตฌํ๋ ๊ฒฝ์ฐ ํด๋น ๋ฒ์ ์ ์ฟผ๋ฆฌํ ์ ์์ ๊ฒ์ผ๋ก ์์ํฉ๋๊น?
๊ทธ๋ ๋ค๋ฉด ์ฌ์ฉ์๊ฐ ์ฟผ๋ฆฌํ ๊ฒ์ผ๋ก ์์๋๋ ์๋๋ฆฌ์ค์ ๋ํด ์กฐ๊ธ ๋ ์์ธํ ์ค๋ช
ํด ์ฃผ์๊ฒ ์ต๋๊น? #requires
ํ๊ทธ์ ๊ฐ์ ๋ค๋ฅธ ์์คํ
์์ ์๋ํ ๊ฒ์ผ๋ก ์์ํ์ญ๋๊น?
์์ค์์ ๋ณผ ์ ์๋ ๋ฉํ๋ฐ์ดํฐ์ผ ๊ฒฝ์ฐ ์ฃผ์ ๊ธฐ๋ฐ ๋์๋ง์ NOTES
์น์
์ ๋ฃ์ ์ ์์ต๋๋ค.
PowerShell ์์ํ ๊ฒฐ๋ก ์ ๋ฐ๋ผ ๋ฌธ์ ๋ฅผ ์ข ๋ฃํ์ง๋ง(์ถ์ ์ค์ง) ์์ ๋กญ๊ฒ ํ ๋ก ์ ๊ณ์ํ ์ ์์ต๋๋ค.
์, ์ ๋ ์ค๋ NOTES ์น์ ๊ณผ $pVersion/$pName์ ์ฌ์ฉํฉ๋๋ค. ๋๋ ์ฐ๋ฆฌ ๋๋ถ๋ถ์ด ํ์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋ ๊ฒ ํ์ญ์์ค.
๋ด๊ฐ "๋๋ ํ์ง ์์ ๊ฒ์ด๋ค"๋ผ๊ณ ์ผ์ ๋ ๋๋ ํน์ ํ ์ฌ๋์ด ์๋๋ผ ์ผ๋ฐ์ ์ธ ์ฌ๋์ ๋ํด ๋งํ๊ณ ์์๋ค(๋๋ ๊ทธ ๋ฒ์ฃผ์ ์ํ์ง๋ง).
๋ฐ $pVersion/$pName
๊ทธ๊ฒ๋ค๋ก ๋ฌด์์ ํฉ๋๊น? ๊ฒ์ํ ๋์จํ ๊ธฐ๋ฅ์ ์๊ฐ ์์ต๋๊น? ์ฌ์ฉ ์ฌ๋ก๋ฅผ ์ดํดํ๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค.
๋ด๊ฐ "๋๋ ํ์ง ์์ ๊ฒ์ด๋ค"๋ผ๊ณ ์ผ์ ๋ ๋๋ ํน์ ํ ์ฌ๋์ด ์๋๋ผ ์ผ๋ฐ์ ์ธ ์ฌ๋์ ๋ํด ๋งํ๊ณ ์์๋ค(๋๋ ๊ทธ ๋ฒ์ฃผ์ ์ํ์ง๋ง).
๋ค, ๋ถ๋ช ํ ๋ชจ๋์ ๋ํด ๋ฐฐ์ฐ๊ธฐ๋ฅผ ๊ฑฐ๋ถํ๋ ์ฌ๋๋ค์ด ์์ต๋๋ค. ๋๋ ๊ทธ๋ฐ ์ฌ๋๋ค์ ๋ง์ด ์๊ณ ์๊ณ ํ์ฌ ์๊ณ ์์ต๋๋ค(๋ช ๋ ์ ์๋ ์ฌ๋๋ค์ด๋ผ๊ณ ํ์ต๋๋ค). ๊ทธ๋ค์ด ์กด์ฌํ๋ค๋ ์ฃผ์ฅ์ ์์ต๋๋ค. ์ฆ, ๊ทธ ์ฌ๋๋ค๊ณผ 1. ๋ฒ์ ๊ด๋ฆฌ์ ๊ด์ฌ์ด ์๋ ์ฌ๋๋ค๊ณผ 2. ์์ ์ ์์ ์ ์ถํํ๊ณ ์ถ์ ๋ง์์ด ์๋ ์ฌ๋๋ค ์ฌ์ด์ ๊ฒน์นจ์ ์ ๊ฒฝํ์ ๊ฑฐ์ 0์ ๋๋ค. ์ค์ ๋ก 1๋ฒ๊ณผ 2๋ฒ ํ์ธ๋์ ์ ํํ๋ ๋๋ถ๋ถ์ ์ฌ๋๋ค์ ๊ฒ์ํ๊ธฐ ์ ์ ๋ชจ๋์ ์ ๋ง ๋นจ๋ฆฌ ๋ํํ๋ ๋ฐฉ๋ฒ์ Google์ 10๋ถ ์ ๋ ๊ฑธ๋ฆฝ๋๋ค. ๋๋ ๋ ์์ฃผ, ๊ทธ๋ค์ ๋ฒ์ ๊ด๋ฆฌ์ ์ ๊ฒฝ ์ฐ์ง ์๊ณ ์์ ์ด๋ ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์ ๊ทธ๊ฒ์ ๊ฝ ๋ซ์ต๋๋ค.
๋ฐ $pVersion/$pName
๊ทธ๊ฒ๋ค๋ก ๋ฌด์์ ํฉ๋๊น? ๊ฒ์ํ ๋์จํ ๊ธฐ๋ฅ์ ์๊ฐ ์์ต๋๊น? ์ฌ์ฉ ์ฌ๋ก๋ฅผ ์ดํดํ๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค.
๋ด๊ฐ "๋๋ ํ์ง ์์ ๊ฒ์ด๋ค"๋ผ๊ณ ์ผ์ ๋ ๋๋ ํน์ ํ ์ฌ๋์ด ์๋๋ผ ์ผ๋ฐ์ ์ธ ์ฌ๋์ ๋ํด ๋งํ๊ณ ์์๋ค(๋๋ ๊ทธ ๋ฒ์ฃผ์ ์ํ์ง๋ง).
๋ค, ๋ถ๋ช ํ ๋ชจ๋์ ๋ํด ๋ฐฐ์ฐ๊ธฐ๋ฅผ ๊ฑฐ๋ถํ๋ ์ฌ๋๋ค์ด ์์ต๋๋ค. ๋๋ ๊ทธ๋ฐ ์ฌ๋๋ค์ ๋ง์ด ์๊ณ ์๊ณ ํ์ฌ ์๊ณ ์์ต๋๋ค(๋ช ๋ ์ ์๋ ์ฌ๋๋ค์ด๋ผ๊ณ ํ์ต๋๋ค). ๊ทธ๋ค์ด ์กด์ฌํ๋ค๋ ์ฃผ์ฅ์ ์์ต๋๋ค. ์ฆ, ๊ทธ ์ฌ๋๋ค๊ณผ 1. ๋ฒ์ ๊ด๋ฆฌ์ ๊ด์ฌ์ด ์๊ณ 2. ์์ ์ ์์ ์ ๊ฒ์ํ๊ณ ์ถ์ ๋ง์์ด ์๋ ์ฌ๋๋ค ์ฌ์ด์ ๊ฒน์นจ์ ์ ๊ฒฝํ์ _๊ฑฐ์_ 0์ ๋๋ค. ์ค์ ๋ก 1๋ฒ๊ณผ 2๋ฒ ํ์ธ๋์ ์ ํํ๋ ๋๋ถ๋ถ์ ์ฌ๋๋ค์ ๊ฒ์ํ๊ธฐ ์ ์ ๋ชจ๋์ ์ ๋ง ๋นจ๋ฆฌ ๋ํํ๋ ๋ฐฉ๋ฒ์ Google์ 10๋ถ ์ ๋ ๊ฑธ๋ฆฝ๋๋ค. ๋๋ ๋ ์์ฃผ, ๊ทธ๋ค์ ๋ฒ์ ๊ด๋ฆฌ์ ์ ๊ฒฝ ์ฐ์ง ์๊ณ ์์ ์ด๋ ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์ ๊ทธ๊ฒ์ ๊ฝ ๋ซ์ต๋๋ค.
๋ชจ๋ ์ฌ์ฉ๋ฒ์ ์๊ณ ์์ต๋๋ค. ๋๋ ๊ทธ๊ฒ๋ค์ ํญ์ ์๋๋ค. ๋น์ด ๋จน์, ์ด๋ฌํ ๊ธฐ๋ฅ์ ๋ด๋ถ ๋ชจ๋์ ๋ง์ ์๊ฐ, ๊ทธ๋ฆฌ๊ณ ๋ด๊ฐ ๋ณ๊ฒฝ ๋ก๊ทธ (ํจ์์) ์ธ๋ถ๋ก ๊บผ๋ดํ์ง ์๊ณ ๋ง์ง๋ง ํจ์์์ ๋ณ๊ฒฝ ๋ฌด์์ ์ถ์ ํ ์ ์๋๋ก ๋๋ ๋ด๋ถ ๋ฒ์ ์ ์ฌ์ฉํฉ๋๋ค. ํจ์์ .VERSION
๊ฐ ๋ชจ๋ ๋ฒ์ ์ ๋ฐฉํดํ๋ ์ด์ ๋ฅผ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ๋ ๊ทธ๋ฅํ์ง ์์ต๋๋ค.
๋ชจ๋ ์ฌ์ฉ๋ฒ์ ์๊ณ ์์ต๋๋ค. ๋๋ ๊ทธ๊ฒ๋ค์ ํญ์ ์๋๋ค. ์ ์ฅ, ์ด๋ฌํ ํจ์๋ _inside_ _modules_ ๋ง์ ์๊ฐ์ ์ฌ์ฉํ๋ฉฐ, ๋ด๋ถ ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ฏ๋ก ์ธ๋ถ(ํจ์์ ๋ํ) ๋ณ๊ฒฝ ๋ก๊ทธ๋ฅผ ๊ฐ์ ธ์ฌ ํ์ ์์ด ํจ์์์ ๋ง์ง๋ง์ผ๋ก ๋ณ๊ฒฝ๋ ๋ด์ฉ์ ์ถ์ ํ ์ ์์ต๋๋ค. ํจ์์
.VERSION
๊ฐ ๋ชจ๋ ๋ฒ์ ์ ๋ฐฉํดํ๋ ์ด์ ๋ฅผ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ๋ ๊ทธ๋ฅํ์ง ์์ต๋๋ค.
๋ง์ต๋๋ค. ํ์ง๋ง ์ค์ํ ๊ฒ์ ๊ทธ ๋ฉํ๋ฐ์ดํฐ๋ก ๋ฌด์์ ํ ๊ฑด๊ฐ์? ํจ์์ ์์ค์์ ๋ณด๋ ๊ฒ๋ฟ์
๋๊น? ๊ทธ๋ ๋ค๋ฉด .NOTES
์น์
์ด ์ด๋ป๊ฒ ์ ํฉํ์ง ์์์ง ์์ธํ ์ค๋ช
ํด ์ฃผ์๊ฒ ์ต๋๊น?
๋ํ ์ด ๋ฌธ์ ๋ ๋
๋ฆฝ ์คํํ ํจ์๊ฐ Get-Command
์ถ๋ ฅ์์ ๋ฒ์ ๋ฒํธ๋ฅผ ์ ์ธํ๋๋ก ํ์ฉํ๊ธฐ ์ํ ๊ฒ์
๋๋ค. ์ ์ฒด ๋ณ๊ฒฝ ๋ก๊ทธ๋ฅผ ํฌํจํ๋๋ก ์์ฒญํ๋ ๊ฒ์ ์๋นํ ๋ค๋ฅธ ๊ตฌํ์ด๋ฉฐ ์๋ง๋ ์์ฒด ๋ฌธ์ ์์ ๋ ๋์ ๊ฒ์
๋๋ค.
๊ทธ๊ฒ์ ๋๋ตํ๊ธฐ ์ฝ์ต๋๋ค. ์ฆ, ํธ์ง๊ธฐ์์ ์ด๊ฑฐ๋ ํน์ ์ ํ์ ์ด์ํ ๋ฌธ์์ด ๊ฒ์์ ์ํํ์ฌ ์ฃผ์ด์ง ์ปดํจํฐ/ํด๋น ์ปดํจํฐ์ ์ง์ ๋ ์์น์ ์ค์น๋ ๋ฒ์ ์ ์ฐพ์์ผ ํฉ๋๋ค. ์ด ๋๋ต์ฒ๋ผ ํญ์ ์ฌ์ด ๊ฒ์ ์๋๋๋ค. :-)
์ค๋ง?
Notes ํ๋๋ ์ ์ ํ ์ฃผ์ ๊ธฐ๋ฐ ๋์๋ง(์ด์จ๋ ๊ทธ๋์ผ ํจ)๋ก ์์ฑํ๋ ๊ฒฝ์ฐ Get-Help ์ถ๋ ฅ์ ํ์๋ฉ๋๋ค.
function test {
<#
.NOTES
Version: 1.5.0
#>
[CmdletBinding()]
param()
}
Get-Help test -Full
# or
Get-Help test | % alertSet
๊ฒฐ๊ณผ:
PS> Get-Help test -Full
SYNTAX
test [<CommonParameters>]
DESCRIPTION
PARAMETERS
<CommonParameters>
This cmdlet supports the common parameters: Verbose, Debug,
ErrorAction, ErrorVariable, WarningAction, WarningVariable,
OutBuffer, PipelineVariable, and OutVariable. For more information, see
about_CommonParameters (https://go.microsoft.com/fwlink/?LinkID=113216).
INPUTS
OUTPUTS
NOTES
Version: 1.5.1
RELATED LINKS
PS> get-help test | % alertset
Version: 1.5.1
๊ทธ๋์? ๋๋ ๊ฐ๋ํ์ง ์๋๋ค. ์ผํญ ์ฐ์ฐ์๋ฅผ ์ํํ๋ ๋ค๋ฅธ ๋ ์ฅํฉํ ๋ฐฉ๋ฒ๋ ์์์ต๋๋ค. ๊ทธ๋ฌ๋... ๋ ๊ฐ๊ฒฐํ ๋ฐฉ๋ฒ์ด ๊ตฌํ๋์์ต๋๋ค. (์ผ๋ถ) ์ปค๋ฎค๋ํฐ๊ฐ ์ํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋๋ ์ฌ์ ํ null-coalescing ์ฐ์ฐ์๊ฐ ๋ฌด์์ธ์ง ๋ชจ๋ฆ ๋๋ค.
๋น์ ์ด ๋ฌด์์ ์ถ๊ตฌํ๊ณ ์๋์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ๊ทธ๊ฒ์ ๋น์ ์ด ์ํ๋ ๊ฒ์ ๋น๊ต์ ์ฝ๊ฒ ํ ์ ์๊ฒ ํด์ค๋๋ค. ๊ฑฐ๊ธฐ์ ์ถ๊ฐ ํ๋๋ฅผ ์ถ๊ฐํ๋ ๋ฐ ์๊ฐ์ ํ ์ ํ ๊ฐ์น๊ฐ ์๋ค๊ณ ๋ด ๋๋ค.
๊ทธ๋ ๋ค๋ฉด ์์ ๋กญ๊ฒ PR์ ์ด์ด ์ฃผ์๋ฉด ๋ ์์ธํ ์ด์ผ๊ธฐํ๊ฒ ์ต๋๋ค. ๐คท
๋ฌด์์ ์ํ PR์ธ๊ฐ? ์ ๋ C# ์ฝ๋๊ฐ ์๋๋๋ค. ์ ๋ 30๋ ๋๊ฒ ์ ๋ฌธ ๊ฐ๋ฐ์๊ฐ ์๋๋๋ค.
๋๋ ์ฐ๋ฆฌ ์ค ๋ช๋ช์ด ์ฐ๋ฆฌ๊ฐ ์ถ๊ตฌํ๋ ๊ฒ๊ณผ ์ฐ๋ฆฌ์ ์ฌ์ฉ ์ฌ๋ก์ ๋ํด ์ ๋ง ๋ช ํํ์ผ๋ฉฐ ๋ฐฉ๊ธ ๋ค์ ํ ๊ฒ์ฒ๋ผ ์ด๋ฌํ ์ฐ๋ ค๊ฐ ์ต์ํ๋๋ ๊ฒ์ ๋ณด์๋ค๊ณ ์๊ฐํฉ๋๋ค.
๊ด๋ฆฌ์ ์คํฌ๋ฆฝํ ์ ๋์ด์ ๋ถ๋ค์ "๊ทธ๋ฅ ๋ชจ๋๋ก ๋ง๋์ธ์"๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๋๋ถ๋ถ์ ๊ด๋ฆฌ ์คํฌ๋ฆฝํฐ๋ ๋ฐฉ๋ฒ์ ์์ง ๋ชปํ๋ฉฐ ์๊ตฌ ์ฌํญ์ ๋ณด๋ฉด ๋๋ฌด ๋ฌธ์ ๊ฐ ๋ง๋ค๊ณ ๋งํ ๊ฒ์ ๋๋ค(๊ทธ๋ฆฌ๊ณ ์ ๋ ๋์ํ ๊ฒ์ ๋๋ค).
๊ทธ๋ฌ๋ ์ด๊ฒ์ ๋ฌด์๋ฏธํ๊ณ ๋๋ ๋ ์ ์๊ณ ์์ต๋๋ค. PowerShell ์์ํ์ ๊ฒฐ๋ก ์ ์ด๋ฏธ ๋๋ฌํ์ต๋๋ค. ๋๊ธ์ ๋ฌ์ ์ฃ์กํฉ๋๋ค.
PowerShell ์์ํ์ ๊ฒฐ๋ก ์ ์ด๋ฏธ ๋๋ฌํ์ต๋๋ค.
ํผ๋๋ฐฑ์ ๊ธฐ๋ฐ์ผ๋ก ์ค๊ณ์ ๋ฐ๋ฅธ ๊ฒฐ๋ก ์ ์ฌ๊ณ ํ ์ ์์ต๋๋ค.
๋๋ ์ฐ๋ฆฌ ์ค ๋ช๋ช์ด ์ฐ๋ฆฌ๊ฐ ์ถ๊ตฌํ๋ ๊ฒ๊ณผ ์ฐ๋ฆฌ์ ์ฌ์ฉ ์ฌ๋ก์ ๋ํด ์ ๋ง ๋ช ํํ์ผ๋ฉฐ ๋ฐฉ๊ธ ๋ค์ ํ ๊ฒ์ฒ๋ผ ์ด๋ฌํ ์ฐ๋ ค๊ฐ ์ต์ํ๋๋ ๊ฒ์ ๋ณด์๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋๋ ์ค์ ๋ชฉํ์ ์ฌ์ฉ ์ฌ๋ก๊ฐ ๋ฌด์์ธ์ง ํ์ ํ๊ธฐ ์ํด ์ ๋ง ์ด์ฌํ ๋ ธ๋ ฅํ์ง๋ง ๋ด ์ง๋ฌธ์ ๋๋ถ๋ถ ๋ฌด์๋์์ต๋๋ค. ์ ๋ง ์ดํดํ๊ณ ์ถ์ต๋๋ค.
๊ด๋ฆฌ์ ์คํฌ๋ฆฝํ ์ ๋์ด์ ๋ถ๋ค
์ ๋ ์์คํ ๊ด๋ฆฌ์์ ๋๋ค. ๋ด ๊ฒฝ๋ ฅ์ ๋๋ถ๋ถ์ ํด์ ํ ์ด๋ธ ๊ตฌ๋ฌธ์ด "์คํ๋ํ ๊ตฌ๋ฌธ"์ด๋ผ๊ณ ์๊ฐํ๋ ๋ฐ ์ฌ์ฉ๋์์ต๋๋ค. ๋๋ถ๋ถ์ ๋๋ฃ๋ ๋ด๊ฐ discord/reddit์์ ๋์์ ์ฃผ๋ ๋๋ถ๋ถ์ ์ฌ๋๋ค๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก PowerShell์ ์ ๋์ ์ธ ๊ธฐ๋ณธ ์ฌํญ๋ง ์๊ณ ์์ต๋๋ค(์ ํ ์๋ค๋ฉด).
๋๋ ๋น์ ์ด PS dev ํ๊ณผ ์ฝ๊ฐ์ ๊ด๊ณ๋ฅผ ๊ฐ์ง๊ณ ์๋ค๋ ๊ฒ์ ์์ง๋ง, ๋ด๊ฐ ์ฐ์ฐํ C#์ ์๊ฒ ๋์๊ธฐ ๋๋ฌธ์ ๋ด๊ฐ ๋น์ ์ ๊ด์ ์ ์ดํดํ ์ ์๋ ์ฒํ์ง ๋ง์ญ์์ค. ๋๋ ์ด ๋ฆฌํฌ์งํ ๋ฆฌ์ ๋ํ ๊ทธ ๊ด์ ์ ์ํด ๋์์์ด ์ธ์ฐ๊ณ ์์ต๋๋ค.
"๊ทธ๋ฅ ๋ชจ๋๋ก ๋ง๋์ญ์์ค"๋ผ๊ณ ์๊ฐํ์ญ์์ค. ๋๋ถ๋ถ์ ๊ด๋ฆฌ ์คํฌ๋ฆฝํฐ๋ ๋ฐฉ๋ฒ์ ์์ง ๋ชปํ๋ฉฐ ์๊ตฌ ์ฌํญ์ ๋ณด๋ฉด ๋๋ฌด ๋ฌธ์ ๊ฐ ๋ง๋ค๊ณ ๋งํ ๊ฒ์ ๋๋ค(๊ทธ๋ฆฌ๊ณ ์ ๋ ๋์ํ ๊ฒ์ ๋๋ค).
๋์ค์ ์ด ์ค๋ ๋๋ฅผ ์ ํ๊ณ ๋ชจ๋์ ๋ง๋๋ ๊ฒ์ด ๊บผ๋ ค์ง๋ ์ฌ๋์ ์ํด ์๊ตฌ ์ฌํญ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
.ps1
ํ์ผ์ ์ด๋ฆ์ .psm1
Import-Module ./file.psm1
๋์ . ./file.ps1
๊ทธ๊ฒ ๋ค์ผ, ๋น์ ์ ๋ชจ๋์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๋ค๋ฅธ ๋ชจ๋ ๊ฒ์ ์์ง ๊ฑฑ์ ํ ํ์๊ฐ ์๋ ๋ชจ๋ฒ ์ฌ๋ก์ผ ๋ฟ์ ๋๋ค. ๋ฒ์ ์ ์ง์ ํ๋ ค๋ฉด ๋งค๋ํ์คํธ๊ฐ ํ์ํฉ๋๋ค. ์ด์ ๋ํ ์ ์ฒด ์๊ตฌ ์ฌํญ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
.ps1
ํ์ผ์ ์ด๋ฆ์ .psm1
New-ModuleManifest -RootModule ./file.psm1 -Path ./file.psd1 -ModuleVersion 1.0.0
Import-Module ./file.psd1
๋์ . ./file.ps1
์๋น์(๋๋ ๋น์ ์์ )๊ฐ ๋ํธ ์์ค๋ฅผ ํ์๋ก ํ๋ ๋์จํ ๊ธฐ๋ฅ์ ps1์ ์ ๊ณตํ๋ ๊ฒฝ์ฐ ๋ชจ๋์ ์์ฃผ ๋นจ๋ฆฌ ๋์ง๋ฉด ์ถ์ด ๋ ์ฌ์์ง ๊ฒ์ ๋๋ค.
์ง์ ํธ์ถ ๊ฐ๋ฅํ ์คํฌ๋ฆฝํธ๋ฅผ ์ ๊ณตํ๋ ๊ฒฝ์ฐ New-ScriptFileInfo
๋ฅผ ์ฌ์ฉํ์ฌ ๋ค์๊ณผ ๊ฐ์ ์ฃผ์์ด ์๋ ์คํฌ๋ฆฝํธ ํ์ผ์ ์์ฑํ ์ ์์ต๋๋ค.
<#PSScriptInfo
.VERSION 1.0.0
.GUID xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
.AUTHOR username
.COMPANYNAME
.COPYRIGHT
.TAGS
.LICENSEURI
.PROJECTURI
.ICONURI
.EXTERNALMODULEDEPENDENCIES
.REQUIREDSCRIPTS
.EXTERNALSCRIPTDEPENDENCIES
.RELEASENOTES
.PRIVATEDATA
#>
<#
.DESCRIPTION
Quick script description here.
#>
param()
Test-ScriptFileInfo
์ฟผ๋ฆฌํ ์ ์์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ด๊ฒ์ ๊ธฐ๋ฅ์ ์คํํ๊ฑฐ๋ ๋ฐฐํฌํ๋ ๊ฒ์ด ์๋๋๋ค. ๋ด๊ฐ ์ํ๋ ๊ฒ์ ๋ฒ์ ์ ๋ณด๋ฅผ ์ถ์ ํ๊ณ ๊ฒ์ํ๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํ์ฌ Get-Command๋ฅผ ์คํํ๊ฑฐ๋ Get-Function๊ณผ ๊ฐ์ ์ ๋ช ๋ น์ ์คํํ๋ฉด ํจ์์ ๋ํ ์ผ๋ถ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ๋ณผ ์ ์๋๋ก ํ๋ ๋ฉ์ปค๋์ฆ๋ฟ์ ๋๋ค. PowerShell ์คํฌ๋ฆฝํ ์ ํตํด ํ๋กํ ํ์ ์ ๋ง๋ค ์ ์๋ ๋ช ๊ฐ์ง ์์ด๋์ด๊ฐ ์์ต๋๋ค.