Powershell – Resize Powershell Window size

Powershell 창을 사용 할 때 가끔 폭이 너무 작아 불편 할 때가 있다. Height는 창을 늘리면 늘어 나지만 Width는 특정 크기 이상 최대화를 해도 늘어 나지 않는다. Property가 많은 개체를 열어 보거나 긴 text line을 봐야 하는 경우 갑갑 하기도 하다. 이때는 $Host.UI.RawUI.WindowSize 값을 조절 해 줌으로써 넓은 화면을 사용 할 수 있다. 단 변경할때…

Read More

Powershell – Invoke-BatchCommand

일반 cmd 에서 잘 수행되던 명령이 Powershell 에서 똑같이 입력 했을 때 오류가 나는 경우가 있다. 대부분 특수문자가 있을때 Powershell이 특수 문자를 특정 연산자로 인식하면서 의도하지 않은 동작이 일어나는 경우 이다. 예를 들어 svn Dump file을 load하는 경우 다음과 같은 명령을 사용한다.

cmd 에서는 잘 실행되지만 Powershell 에서는 다음과 같은 Error가 날 것이다. ‘…

Read More

Powershell – Parameter Attribute

Powershell Cmdlet, Function을 이용 하다 보면 명령 뒤의 Parameter를 필수 적으로 입력을 요구 할 때가 있다. 또 명령어 뒤에 -[parameter명] 을 붙히지 않고 공백으로 구분하여 입력 하면 자동으로 순서대로 Parameter를 인식 하는데 이런 동작들은 Cmdlet, Function 내부에 진입 하기 전에 Parameter Attribute 에 의해서 조절 된다. 즉 꼭 필요로 하는 Parameter를 Cmdlet 안에서 $null 체크를…

Read More

Powershell – Resize Image Files

Powershell 로 이미지 파일을 Resize 해 보자. Parameter는 입력 파일 경로, 출력 파일 경로 그리고 Width, Height 사이즈만 있으면 된다. System.Drawing을 사용하였는데 기본적으로 Load 되어 있는 Assembly가 아니므로 Load 해 줘야 한다. 아래는 여러가지 방법중 하나 이다. .Net 을 사용한 Image Resize 코드들을 찾아 보면 여러 가지 방법이 있으니 다른 방법도 Powershell로 다시 써보면 재미…

Read More

Powershell – Customize prompt

Powershell 의 Prompt는 기본적으로 PS {현재경로}> 로 되어 있다. 이 모양은 Powershell 에서 명령을 수행하고 Prompt 라는 Function을 수행한 결과이다. 믿기지 않는 다면 다음 명령으로 확인 해 보자.

다음과 같이 Fuction임을 확인 할 수 있을 것이다.

Definition을 자세히 보면 다음과 같다.

위의 코드가 Powershell의 Prompt를 쓰는 것이다. 그러므로 똑같은 이름의 Prompt Function을…

Read More

Powershell – FTP List Parsing

Powershell 을 이용해 FTP Server를 상대로 자동화 작업을 하다보니 File 업로드, 다운로드 뿐 만 아니라. 특정 FTP 경로 아래에 있는 File 과 Directory 들의 정보가 필요 했다. 이때 FTP Server를 상대로 WebRequest를 보내는데 이때 Request Method를 “List”로 한다. 이전에 올린 포스트인 Get-WebResponseString 을 이용하여 List를 요청 해 보자. 참고 Get-WebResponseString

다음과 같은 결과가 나온다…

Read More

Powershell – Web (FTP) Request, Response

Powershell 을 이용하여 웹 요청을 해보자. 웹 사이트를 관리 하거나 Rest 방식의 서비스를 사용 할 때 유용하다. Get-WebResponseString

사용 예

$Response 에서 결과 String을 반환 하지 않고 .StatusCode 등 다른 정보를 활용 할 수 있다. Web 뿐만 아니라 FTP 에서도 동일하게 사용 할 수 있다…

Read More

Powershell – Hash Tables (해시 테이블)

Powershell 에서의 Hash Table은 .NET 의 System.Collections.Hashtable 타입이다. 따라서 동일한 Property와 Method 들을 가지고 있다. Hash Table은 Key-Value Pair(쌍) 의 Collection 이다. Key 와 Value 쌍으로 있어야 입력 할 수 있다. Value는 null 값이 가능 하지만 Keys는 null 값이 허용되지 않는다. Hash Table 생성 Hash Table 개체는 New-Object cmdlet 또는 @{ } 로 생성 할…

Read More

Powershell – Arrays (배열)

Powershell 의 모든 Variable(변수)는 .NET의 Type을 가지는데 지금 부터 설명할 Array는 Powershell에서 기본 값으로 System.Object[] 타입으로 생성된다. 배열 선언 간단한 Array부터 만들어 보자.

다음과 같이 출력 될 것이다.

원소가 3개인 Object 배열 (Object[]) 이 생성되었다. 확인을 위해 다음을 하나씩 입력 해 보자.

$Arr 개체가 타입이 Object[] 즉 배열로 생성이 되었고, Property들이 정상…

Read More

Powershell – Web File Download , Upload

Powershell을 이용하여 Linux의 wget과 같이 Web (http, ftp) 에서 File을 다운로드하고 업로드하는 스크립트를 만들어 보자. .Net의 WebClient를 사용하면 간단하다. Get-WebFile.ps1

핵심은 WebClient 개체를 만들고 DownloadFile 메서드를 호출 하는 것. Upload도 마찬가지로 UploadFile 메서드를 호출 하면 된다. Add-WebFile.ps1

이름 정하기가 까다롭다. Get-Verb 안에서 동사를 선택 하는데 Download, Upload 는 없으므로 Get , Add를 사용…

Read More