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