공부, 프로그래밍/파워쉘, cmd

파워쉘) 파일 다운로드 방법 2가지 +환경변수

devsp 2020. 12. 26. 20:31


여러 개의 이미지를 일일이 우클릭하여

다운로드 하는게 너무 힘들어서

프로그램으로 할 수 있는 방법이 없을까해서

오래도록 찾았는데 이제서야 정리한다...

(이미지 말고도 다양한 확장자의 파일을 다운로드할 수 있다.)


아주 쉽고 간단하다.



방법1.

(New-Object System.Net.WebClient).DownloadFile('다운로드할 파일의 주소','저장할 경로\파일명.확장자');


방법2.

Invoke-WebRequest ('다운로드할 파일의 URL') -OutFile ('저장할 경로\파일명.확장자');


(+ cmd에서 사용하는 방법)

powershell.exe -ExecutionPolicy ByPass -WindowStyle Normal (위의 파워쉘 명령어)


→ CMD에서 powershell을 동작시켜서 입력한 명령어를

처리하도록 하는 방식으로 *CMD방식이 기준이 됨

(아래의 환경변수 설명 참고)



[ 다운로드 ]


파워쉘 파일다운로드 스크립트.txt



[ 추가정보 ]


* 오류가 발생하는 경우는 URL이 유효하지 않거나

저장할 경로가 잘못된 경우 발생할 수 있음


* 여러 파일을 한번에 다운로드 받으려면

URL에 규칙성이 있으면 좋겠지만, 그렇지 못하면

웹파싱을 활용해야할 것 같다.

https://devjit.tistory.com/23


* 확장자 상관없이 다운로드 받은 결과는 동일함

(JPG, PNG, GIF 용량동일)


* 환경변수를 통해서 다운로드 받을 경로를

용이하게 설정할 수 있는데 (예:%USERPROFILE%)

CMD에서는 %변수%,

파워쉘에서는 $env:변수로 한다.

Powershell ISE에서는

(New-Object System.Net.WebClient).DownloadFile('다운로드할 파일의 주소',

'%USERPROFILE%\Desktop\test\test.jpg');

명령어가 유효하지 않지만


powershell.exe -ExecutionPolicy ByPass -WindowStyle Normal

(New-Object System.Net.WebClient).DownloadFile('다운로드할 파일의 주소',

'%USERPROFILE%\Desktop\test\test.jpg');

CMD에서 실행시키는 파워쉘에서는 유효하다.


대신 파워쉘에서는

(New-Object System.Net.WebClient).DownloadFile('다운로드할 파일의 주소',

'$env:USERPROFILE\Desktop\test\test.jpg');

으로 대체할 수 있다.



[ 참고자료 ]

○ https://runardor.tistory.com/18

○ 파워쉘을 사용하여 파일 다운로드

○ https://jsoft.tistory.com/247

○ https://sosobaba.tistory.com/193

○ https://baejangho.com/entry/Windows-PowerShell-env