서점에 가서 책을 보다가 Windows PowerShell Cookbook 이란 책을 보고, 파워쉘 (이하 PS) 라는게 나왔다는 것을 알게 되었다.

PS 는 cmd.exe 의 대용품으로 .NET 플랫폼 기반으로 만들어진 쉘이다.

1. 텍스트 스트링기반으로 동작하는 cmd 에 비해 PS 는 오브젝트단위로 동작한다.
2. 기존의 쉘 명령어 (cd, dir, 등등)은 모두 그대로 동작이 가능하다
3. 강력한 기능이 악용되지 않도록 보안 기능이 부가되어있다 (예를 들면 아이콘을 더블클릭하는 것으로 쉘 스크립트를 실행하는 것을 막을 수 있다)
4. cmdlet 이라고 하는 커맨드릿 (작은 커맨드 모음) 을 만들고, 다시 커맨드릿을 조합하는 것으로 복잡한 기능들을 수행할 수 있다
5. 자체적인 언어를 통해서 시스템 관리에 최적화된 기능들을 간결하게 작성할 수 있다.
6. 파일시스템뿐만이 아니라 윈도우 레지스트리나 다른 형태의 가상적인 드라이브들도 조작의 대상이 된다. 예를 들면 HKLM: 이라는 드라이브로 가서 software/microsoft/windows/currentversion/run 같은 폴더로 cd, dir 같은 조작을 해볼 수 있다

기존 배치 파일의 기능적 한계와, 전문적인 언어 (펄이나 파이썬 같은..) 사이의 갭을 메꿔줄 것으로 기대해봄직하다.


연습 1

파워쉘의 프롬프트는 그 자체로 .net 오브젝트와 함수를 받아들인다

예를 들어

PS >1+2
3

PS >"Hello".Length
5

연습 2

각종 기능들은 오브젝트를 리턴한다. 예를 들어서 현재 notepad.exe 프로세스가 있다면
PS >$p = Get-Process notepad

로 받아올 수 있고

PS > $p.Kill()

을 하면 프로세스를 종료시킬 수 있다

imcgames 의 김학규입니다