파워쉘 array 를 사용


안녕하세요.
고코더 입니다.


오늘은 파워쉘에서 배열을 사용하는 방법을 알아보겠습니다. 
워낙 긴 내용이지만 변수에 배열을 담는 예제를 우선으로 알아보겠습니다.



 1. 배열 선언  : [변수] = @[배열] 


변수에 배열을 만드는 방법은 아주 단순합니다. 쉼표(,) 구분자를 이용하여 데이터를 입력하면 됩니다.
$arry = "G","O","C","O","D","E","R"

해당 배열의 값이 정상적으로 담습니다. 가장 기초적인 배열을 만드는 예제 입니다.


배열을 만드는 두번째 방법은 @()을 이용하는 방법입니다.
$arry = @("G","O","C","O","D","E","R")

이 방법은 위에 방법과 동일한 결과가 나타납니다. 해당 문자열이 배열임을 확실하게 말해주는 방법입니다.
개인적으로 @을 선언하여 배열을 만드는걸 추천합니다.




 2. 배열 출력 : [배열][인덱스] 


변수에 담김 배열을 출력 하는 방법을 알아봅니다. 기존에 언어와 같이 해당 변수에 대가로를 열어서 인덱스를 지정하면 해당 부분에 담긴 정보를 가져옵니다. 
$array[0]
$array[1]

처음에 담은 G와 두번째 담긴 O를 차례대로 가져왔습니다. 


배열을 가져올때 Get을 사용하는 방법을 알아봅니다. 
$array.Get(0)
$array.Get(1)

위에 방법과 동일한 결과 값이 나타납니다. 




 3. 배열 변경 : [배열].Set[인덱스] 


Set은 해당 인덱스에 담겨 있는 배열의 값을 수정할 수 있습니다. 
$arry.Set(0,"g")
$arry.Get(0)

처음에 담긴 대문자 "G"를 Set을 이용해 소문자 "g"로 변경하였습니다. 배열에 값을 변경하는게 가능 합니다. 




마무리


저는 지금도 배열이 가장 어렵습니다.



댓글을 달아 주세요


파워쉘 변수 활용 실습


안녕하세요.
고코더 입니다.


파워쉘에서도 당연히 변수 사용이 가능합니다. 특정 데이터를 담아 놓기 위한 선언입니다.
모든 프로그램 언어에서 사용하는 공통입니다. 다른 언어를 공부하신분은 어렵지 않겠지만
파워쉘로 코딩에 입문하는 분은 간단한 예제를 함께 따라해보면 쉽게 이해하실 수 있습니다.



 1. $var : 변수 선언 


자바스크립트에서 사용하는 방법과 동일한 방법으로 변수 선언이 가능합니다.
해당 명령어를 입력해보세요.
$str = "문자"

그리고 파워쉘에서 이 변수를 그대로 실행하면 변수에 담긴 데이터가 나타납니다. 



 2. [형식]$[변수] : 데이터 타입 지정 


변수에 대한 데이터타입 지정이 가능합니다. 숫자와 문자열이 대표적입니다. 방법은 아주 단순하게 앞에 데이터 형식을 대가로 안에 넣어주면 됩니다.
[string]$str= "고코더"
[int]$num = 1

해당 명령어를 실행하면 해당 타입 변수만 담을 수 있습니다. int에 문자를 담으면 오류가 납니다.




 3. $[변수] = 명령어


다른 언어처럼 리턴 값이 있는 명령어를 변수에 담는 것도 가능합니다.
$loc = Get-Location

해당 변수에 cmdlet 명령어로 폴더 위치를 담고 출력하는 방법입니다. 



마무리


변수는 기본이죠.



댓글을 달아 주세요


파워쉘 파이프라인으로 명령을 연결하기


안녕하세요.
고코더 입니다.


pipeline은 파워쉘을 사용하면서 필수적인 개체입니다. 앞에 명령을 이어서 출력이 되는 방식을 지정할 수 있습니다.
Get-Member를 이전 시간에 다루면서 제가 만든 예제가 바로 파이프라인을 이용한 방식이었습니다.
개체를 알아보는 이 명령어는 파이프라인으로 출력을 지정한 결과 입니다.
Get-Command | Get-Member



 1. [입력] | [출력] : 파이프라인 사용법


이번 시간에는 다른 예제로 파이프라인을 사용해보겠습니다. 
해당 명령어는 현재 운영체제에 서비스 상태를 알아보는 명령어입니다.
Get-Service

하지만 Name으로 정렬 되어 있는걸 Status로 상태별로 나열하는게 필요해 보입니다.


파이프라인을 실행하고 이어서 정렬을 하는 출력 명령어를 입력합니다. status로 데이터를 정렬해서 보여달라는 명령어입니다.
Get-Service | sort -Property "status"  

파이프라인 덕에 아주 훌륭하게 Stop 상태에 서비스를 확인할 수 있게 한번에 명령어로 완성 되었습니다.




 2. 파이프라인의 이점


1. 소스의 양을 줄여준다.
파이프라인은 복잡한 명령어를 대신해서 소스를 간략하게 합니다. 

2. 리소스 절약
두개의 명령어를 한번에 실행으로 처리하기에 리소스 사용량이 줄어듭니다.

3. 가독성을 증가시킨다
파이프라인은 한줄에 연관성 있는 명령어를 동시에 처리하기에 가독성을 높혀줍니다.


마무리


파이프라인이 없다면 끔찍한 명령어들이 많이 보입니다.


댓글을 달아 주세요


파워쉘 Get-Member 사용방법


안녕하세요.
고코더 입니다.


Get-Member는 해당 인수에 대한 객체들을 가져올 수 있는 명령어입니다. 
이전에 Get-Help와 Get-Command로 기초적인 설명을 가져왔다면 
해당 명령어는 자세한 설명을 볼 수 있게 해줍니다.
바로 실습을 해보겠습니다.


Get-Command 사용법


 1. Get-Command에 대한 객체 정보를 확인하는 명령어입니다. 
해당 명령어를 사용하는 사용법을 구체적으로 알 수 있게 해줍니다.
Get-Command | Get-Member

 2. 해당 명령어에서 사용 가능한 객체와 그 타입 그리고 정의를 찾을 수 있습니다.





Get-Command 사용법2


 3. 이번에는 실제로 체감할 수 있는 예제를 활용해보겠습니다.
해당 명령어를 파워쉘에 실행해보세요.
$str = "GoCoder"    
$str | Get-Member  

 4. 그럼 스트링을 사용하는 객체들이 나열됩니다. 우리가 기존에 많이 봐오던 함수들이 많이 보이는데요.
여기서 indexOf를 사용해보겠습니다. 


 5. 객체 멤버중에 indexOf를 사용해보겠습니다.
$str.indexOf("G")

 6. indexOf는 해당 문자열에 위치를 찾아주는 함수 입니다. 처음 글자에 G가 있었고 0을 반환합니다.
스트링을 다루는 방법을 Get-Member로 찾았고 이를 활용하여 코딩을 할 수 있었습니다. 
실질적인 도움을 주는 방법입니다.




마무리


가장 실용적인 도움말


댓글을 달아 주세요


커맨드렛 


안녕하세요.
고코더 입니다.


 1. 오늘은 파워쉘에 기본적인 명령어를 다루는 command let을 알아보려고 합니다. 새로운 단어처럼 보이지만 간단하고 실플하게 만든  .Net Framework으로 개발된 명령어 체계라고 생각하시면 됩니다.


 2. get-command에서 명령어로 본 타입중에 Cmdlet으로 분류된 명령어들이 바로 커맨드렛 입니다.


 4. 그리고 cmdlet은 특수화된 닷넷프레임워크의 클래스 인스턴스 입니다. "System.Management.Automation.Cmdlet", System.Management.Automation.PSCmdlet 클래스에서 파생 합니다. 
마지막으로 cmdlet 장점이자 특징은 파이프라인에 명령을 전달 할 수 있습니다. (pipeline은 이후에 다룹니다)


마무리


cmdlet은 닷넷으로 개발된 내장 명령어라고 생각하시면 될거 같습니다.







댓글을 달아 주세요


파워쉘 예명 사용하는 방법


안녕하세요.
고코더 입니다.


오피스를 해도 게임을 해도 자주 사용하는 명령어를 단축키로 사용하여서 빠르게 실행하는 경우가 있습니다. 쓸모없는 타이핑을 줄이는 효과가 있습니다. 프로그램 언어에서도 별칭을 만들어 긴 명령문을 단축하여 사용하기로 약속을 하고 사용합니다. 파워쉘에도 이런 별칭을 사용할 수 있도록 기능이 마련되어 있습니다. 이로 인해 단순화,명료화를 할수 있고 스크립트의 길이가 짧아지므로 가독성도 좋아집니다. 오늘은 이부분을 다루는 두가지 함수를 알아봅니다.




Get-Alias : 이미 지정된 별칭


 1. 파워쉘에서는 이미 많은 명령어들을 별칭으로 만들어 내장하고 있습니다. 
이 Alias를 확인하는 명령어 입니다.
Get-Alias

 2. 명령어로 나타나는 내역 왼쪽에 있는 문장들이 별칭으로 짧게 만든 명령어입니다.


자체 별칭에서 하가지를 실행해보겠습니다. 현재 폴더 위치를 알아내는 명령어입니다. 
gl -> Get-Location

Get-Location으로 긴 명령어 필요없이 "gl"로 아주 간단하게 현재 위치를 확인하였습니다. 


 3. 파워쉘을 실무에서 먼저 사용하시는 분들은 별칭 명령어는 알지만 원래 긴 명령문을 모르는 경우도 있습니다.
그만큼 예명 사용은 프로 개발자에게 필수적인 존재입니다.



Set-Alias : 별칭 만들기


 4. 파워쉘에서는 별칭을 만들어 사용이 가능합니다. 자주 사용하는 명령어나 실행을 단축 명령어로 만들 수 있습니다.

 5. 명령문의 규칙은 이렇습니다.
Set-Alias [별칭] [대상]

 6. 노트패드(메모장)을 단축해보겠습니다. note 라는 별칭으로 예명을 만들었습니다.
Set-Alias note notepad.exe


 7. 생성한 명령문은 get-alias에서도 리스트에 포함되어 확인이 가능합니다.


 8. note를 입력하니 메모장이 실행되는걸 확인 가능합니다. 




마무리


Alias는 고코더!

댓글을 달아 주세요


내 파워쉘 정보를 알아보자


안녕하세요.
고코더 입니다.


파워쉘을 사용 중이신데 혹시 몇 버전을 쓰고 계신가요?
프로그램 정보를 확인하러 가시지 말고 파워쉘에서 해당 명령어를 한번 실행해보세요.


 1. 호스트 명령어는 현재 내가 사용하는 파워쉘에 대한 정보를 확인해줍니다. 
$host

● 2. 아래와 같은 정보를 제공해줍니다. 
Name           
Version   
InstanceId   
UI       
CurrentCulture  
CurrentUICulture
PrivateData   
DebuggerEnabled  
IsRunspacePushed
Runspace    



마무리


$host 외우기 쉽죠?




댓글을 달아 주세요


파워쉘 도움말,예제 확인하기 


안녕하세요.
고코더 입니다.


지난 시간에 도움말 데이터베이스를 업데이트 하는 방법을 배워 봤습니다.
이제 이 도움말을 사용하는 방법을 알아보겠습니다. 



get-help 도움말 보기


 1. get-help는 특정 함수에 도움말을 가져옵니다.
get-help []

 2. get-host에 설명을 한번 구해보겠습니다.
get-help get-host


 3. 도움말이 자세하게 단락을 나누어 나타납니다. 사실 책을 따로 보지않고 도움말을 보고 공부해도 전혀 무리가 없을 정도로 잘정리 되어 있습니다.




get-help [] -example 예제 보기 


 4. 그리고 제가 가장 좋아하는 도움말은 샘플 예제를 볼 수 있는 것 입니다.
기존 도움말 명령어에 -example만 붙혀주면 됩니다. 
get-help get-host -example


 5. 그러면 다양한 예제가 나타나고 설명도 자세합니다. 한번 중간에 나온 예제를 한번 따라해볼까요.


 6. 해당 예제를 실행해보니 화면 크기를 축소하는 기능이 실행 되었습니다.
$H = Get-Host
$Win = $H.UI.RawUI.WindowSize
$Win.Height = 10
$Win.Width  = 10
$H.UI.RawUI.Set_WindowSize($Win)




get-help [] -online : 온라인에서 설명 보기 


 7아래 명령어는 웹사이트를 띄워서 해당 함수에 대한 설명을 확인할 수 있는 기능입니다. 
get-help get-host -online


 8이렇게 웹사이트로 이동하여서 해당 함수에 대해 자세히 설명을 알 수 있습니다. 



마무리


설명이 훌륭합니다. 다만 영어가 너무 많네요.











댓글을 달아 주세요


파워쉘 도움말 다운로드


안녕하세요.
고코더 입니다.


파워쉘은 강력한 도움말을 제공합니다. MS 제품은 항상 친절하죠. 그런데 도움말을 사용하기 전에
help 파일을 업데이트를 해야 합니다. 이를 다운로드 하지 않으면


 1. 이런 메세지가 나타납니다. 즉 도움말 데이터베이스를 업데이트 후에 사용이 가능한 형식입니다. 
Get-Help가 이 컴퓨터에서 이 cmdlet에 대한 도움말 파일을 찾을 수 없습니다. 일부 도움말만 표시합니다.
이 cmdlet을 포함하는 모듈에 대한 도움말 파일을 다운로드하여 설치하려면 Update-Help를 사용하십시오.
이 cmdlet에 대한 도움말 항목을 온라인으로 보려면 "Get-Help Get-Help -Online"을 입력하거나
https://go.microsoft.com/fwlink/?LinkID=113316(으)로 이동하십시오.


 2. 파워쉘에서 아래 코드를 실행해보세요.
update-help


 3. 그럼 자동으로 온라인에서 help 파일을 접속한 언어에 맞게 다운로드 합니다.



 4. 결과 화면에는 기분 나쁘게 빨간색으로 도움말이 업데이트 되지 않는건 한국어로 모든 설명이 업데이트 되지 않았다는 말입니다. 
오류라기 보단 경고 메세지 입니다. 영어로 봐도 어렵지 않습니다. 
문화권 {ko-KR}을(를) 사용하는 'AppvClient, ConfigDefender,
Defender, Microsoft.PowerShell.ODataUtils, Microsoft.PowerShell.Operation.
Validation, UEV, Whea, WindowsDeveloperLicense' 모듈에 대한 도움말을 업데이
트하지 못했습니다. 도움말 콘텐츠에 연결할 수 없습니다. 도움말 콘텐츠가 저장
된 서버가 사용 가능하지 않을 수 있습니다. 서버를 사용할 수 있는지 검증하거
나 서버가 다시 온라인 상태로 전환될 때까지 기다린 후 명령을 다시 시도하십시오.



마무리


개발자는 영어를 배워야할 운명입니다.


댓글을 달아 주세요


Hello! Powershell 문자열 출력해보기


안녕하세요.
고코더 입니다.


파워쉘을 시작하는 분들에게 간단한 헬로우 코드를 함께 작성해보는 시간을 갖겠습니다.
오늘 사용한 헬로우 사용할 함수는 write-host입니다. 


 1. write-host란?
- 결과를 어떤 화면에 보여줄 때 사용합니다.
- 콘솔에 결과 화면을 출력 합니다. 

 2. 파워쉘을 실행하고 아래 코드를 입력합니다.
$str = "Hello World PowerShell"
write-host $str

 3.그럼 변수 $str에 해당 문자열을 담고 이를 write-host를 사용하여 출력 합니다.
기본중에 기본은 Hello가 출력 되었습니다.


 4.이번엔 조금 더 강조하여 화면에 헬로우를 출력해볼려고 합니다. write-host 는 문자열에 색상을 지정할 수 있습니다.
ForegroundColor : 문자열 색상
BackgroundColor : 배경색상

 5. 다시 아래 코드를 실행해보세요. 이미 변수에는 글자를 담아놓았기에 바로 wirte-host로 출력할 수 있습니다.
write-host $str -ForegroundColor red -BackgroundColor black


 6.새빨간 Hello가 등장했습니다. 


출력 함수인 write-host로 간단하게 헬로우를 완성했습니다.
별다른 셋팅 과정 없이 프로그램이 실행되니 재미가 있을거라 생각 됩니다.


마무리


헬로우! 고코더!


댓글을 달아 주세요