2010. 7. 26. 19:13
안녕하세요. 엉스데브 입니다.
PowerShell 을 가지고 놀다 보니 Linux + Bash 를 사용할 때 유용하게 썼던 유틸인 wget 을 PowerShell 에서도 쓰고 싶어졌습니다.
구글링을 통해, 어느 외국 유저분께서 만든 PowerShell 에서 wget 처럼 사용 할 수 있는 함수를 찾을 수 있었습니다.
(*링크 : http://huddledmasses.org/wget-2-for-powershell/, by "Joel 'Jaykul' Bennett" )
뭐든 내용을 파악하고 사용 해야죠? 스크립트를 살펴 보겠습니다.
먼저 함수의 이름은 Get-WebFile 로 PowerShell 의 명령어 명명법에 잘 맞는 이름이네요.(동사 + 명사)
System.Net.HttpWebRequest Class 를 사용해서 구현 한 것이네요.
MSDN 에서 해당 Class 를 찾아보니 HTTP, 혹은 HTTPS 요청을 처리할 수 있는 Class 군요.
이런 .NET Class 는 MSDN 에서 검색 해 보면 그 Class 가 어떤 기능과 속성들을 가지고 있는지 알 수 있습니다.
(*링크 : http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.aspx )
함수를 사용 하려면, Profile 에 함수를 추가 해 두면 됩니다.
사용법은 아래와 같습니다.
어디 잘 받아졌는지 내용을 확인 해 볼까요?
cat(Get-Content 명령어의 Alias) 으로 파일을 열어 봅니다. -totalcount 파라미터로 처음 5줄만 보겠습니다.
웹 페이지의 내용이 잘 저장 되어 있네요.
저장하지 않고, -Passthru 파라미터를 줘서 화면에 바로 출력 시킬 수도 있습니다.
-Quiet 파라미터로, 다운로드 진행 상태를 표시하지 않도록 할 수도 있군요.
이 함수를 이용하면 추후 REST 등의 HTTPRequest 로 요청 하는 서비스를 PowerShell 에서도 활용 할 수 있는등,
앞으로 대단히 유용하게 사용 될 것 같습니다.
그러나 아직은 Linux 의 wget 유틸에 비해 여러가지 기능이 부족 하네요.
나중에 시간 되면 제가 wget 유틸 사용시 많이 썼던 기능(HTTP 로그인 기능 지원, FTP 프로토콜 지원 등)은 직접 추가 해야 겠습니다.^^
<참고 URL>
http://huddledmasses.org/wget-2-for-powershell/
PowerShell 을 가지고 놀다 보니 Linux + Bash 를 사용할 때 유용하게 썼던 유틸인 wget 을 PowerShell 에서도 쓰고 싶어졌습니다.
구글링을 통해, 어느 외국 유저분께서 만든 PowerShell 에서 wget 처럼 사용 할 수 있는 함수를 찾을 수 있었습니다.
(*링크 : http://huddledmasses.org/wget-2-for-powershell/, by "Joel 'Jaykul' Bennett" )
뭐든 내용을 파악하고 사용 해야죠? 스크립트를 살펴 보겠습니다.
먼저 함수의 이름은 Get-WebFile 로 PowerShell 의 명령어 명명법에 잘 맞는 이름이네요.(동사 + 명사)
System.Net.HttpWebRequest Class 를 사용해서 구현 한 것이네요.
MSDN 에서 해당 Class 를 찾아보니 HTTP, 혹은 HTTPS 요청을 처리할 수 있는 Class 군요.
이런 .NET Class 는 MSDN 에서 검색 해 보면 그 Class 가 어떤 기능과 속성들을 가지고 있는지 알 수 있습니다.
(*링크 : http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.aspx )
함수를 사용 하려면, Profile 에 함수를 추가 해 두면 됩니다.
사용법은 아래와 같습니다.
Get-WebFile { 다운로드 받을 웹 파일 } { 저장 될 파일 명 }
예) Get-WebFile "http://svrstudy.tistory.com" "svrstudy.tistory.com.html"
예) Get-WebFile "http://svrstudy.tistory.com" "svrstudy.tistory.com.html"
어디 잘 받아졌는지 내용을 확인 해 볼까요?
cat(Get-Content 명령어의 Alias) 으로 파일을 열어 봅니다. -totalcount 파라미터로 처음 5줄만 보겠습니다.
웹 페이지의 내용이 잘 저장 되어 있네요.
저장하지 않고, -Passthru 파라미터를 줘서 화면에 바로 출력 시킬 수도 있습니다.
-Quiet 파라미터로, 다운로드 진행 상태를 표시하지 않도록 할 수도 있군요.
이 함수를 이용하면 추후 REST 등의 HTTPRequest 로 요청 하는 서비스를 PowerShell 에서도 활용 할 수 있는등,
앞으로 대단히 유용하게 사용 될 것 같습니다.
그러나 아직은 Linux 의 wget 유틸에 비해 여러가지 기능이 부족 하네요.
나중에 시간 되면 제가 wget 유틸 사용시 많이 썼던 기능(HTTP 로그인 기능 지원, FTP 프로토콜 지원 등)은 직접 추가 해야 겠습니다.^^
<참고 URL>
http://huddledmasses.org/wget-2-for-powershell/
'Powershell > 엉스데브' 카테고리의 다른 글
PowerShell 의 현재 실행 권한 확인 하기 (0) | 2010.08.02 |
---|---|
PowerShell 에서 MSSQL 접속하기. (0) | 2010.07.26 |
PowerShell 을 통해 IIS 관리하기(WebAdministration 모듈) (0) | 2010.07.26 |
PowerShell 스크립트 작성시 주석 달기 (0) | 2010.07.22 |
PowerShell 에서도 man 명령어 사용이 가능 하다? (0) | 2010.07.22 |