PowerShell에서 파일 다운로드 방법

사용자는 중요한 데이터가 있는 웹사이트에서 CSV 파일을 다운로드할 수 있습니다. 일반적으로 통계 정보가 포함된 대용량 파일입니다. 예를 들어, 아래의 공개 링크를 통해 뉴질랜드 정부의 연간 기업 조사 - 2021의 CSV 파일을 다운로드할 수 있습니다. 이 기사에서는 Windows PowerShell 명령을 통해 유사한 기능을 수행하는 방법을 설명하기 위해 다음 CSV 파일 URL을 사용할 것입니다.
https://www.stats.govt.nz/assets/Uploads/Annual-enterprise-survey/Annual-enterprise-survey-2020-financial-year-provisional/Download-data/annual-enterprise-survey-2020-financial-year-provisional-csv.csv
Windows PowerShell은 사용자에게 Unix와 유사한 명령줄 기반 시스템과 유사한 유연성을 제공하기 위해 명령줄 명령을 실행하는 스크립팅 솔루션입니다. 또한 Mac 사용자를 위한 PowerShell 버전도 제공됩니다(명령의 사용은 Windows와 약간 다를 수 있습니다).
정상적인 웹 브라우저에서는 URL이 사용자가 지정한 다운로드 폴더에 CSV 파일을 직접 다운로드합니다. PowerShell에서 동일한 CSV를 다운로드하려고 할 때는 특정 명령이 필요합니다.
Windows PowerShell을 통한 파일 다운로드
Windows PowerShell을 통해 파일을 다운로드하는 데 사용할 수 있는 기본 명령은 Invoke-WebRequest
입니다.
이 명령을 통해 PowerShell은 웹 요청을 시작합니다. 그런 다음 필요한 URL이 제공됩니다.
여기서 중요한 것은 웹 요청에서 가져온 데이터를 저장할 출력 파일의 필요성입니다. 다운로드할 데이터 유형에 해당하는 파일을 먼저 만들어야 합니다. 우리의 요구 사항에 맞춰, 위의 URL에서 웹 요청을 통해 전달된 데이터를 저장하기 위해 .csv 파일 유형을 생성합니다.
CSV뿐만 아니라 다른 파일 유형도 이와 같은 방식으로 다운로드할 수 있다는 점을 염두에 두어야 합니다.
PowerShell에서 CSV 파일을 다운로드하기 위해 Invoke-WebRequest
사용하기
그런 다음 Invoke-WebRequest
는 다음과 같은 방식으로 사용할 수 있습니다.
Invoke-WebRequest URL -OutFile File_path
여기서 -OutFile
은 온라인 CSV 파일에서 데이터를 저장할 파일이 될 것입니다.
아래는 샘플 URL로 전체 실행을 보여줍니다.
Invoke-WebRequest https://www.stats.govt.nz/assets/Uploads/Annual-enterprise-survey/Annual-enterprise-survey-2020-financial-year-provisional/Download-data/annual-enterprise-survey-2020-financial-year-provisional-csv.csv -OutFile .\SaveCSV.csv
PowerShell에서 출력 결과로 아래 스크립트가 작업 완료 시까지 실행되는 것을 볼 수 있습니다.
Writing web request
Writing request stream... (Number of bytes written: 33451654)
위 실행의 출력은 직접 다운로드한 파일과 유사합니다.
그러나 이 Invoke-WebRequest
를 사용할 때 제약이 있습니다. 웹사이트에서 간단한 비밀번호 기반 인증이 필요한 경우 로그인 세부 정보를 포함해야 합니다.
Invoke-WebRequest URL -Add your lgin information- -SessionVariable MyNewSession
다운로드가 완료될 때까지 위 스트림을 실행하면 아래 스크립트를 볼 수 있습니다.
Writing web request Writing request stream... (Number of bytes written: 1474178)
그렇다면 웹 세션을 생성하여 필요한 파일을 다운로드합니다. .cs 형식으로 저장되며, 이를 .csv 형식으로 변경하여 CSV를 읽을 수 있는 애플리케이션과 함께 사용할 수 있습니다.
하지만 웹사이트에서 2단계 인증 또는 기타 다단계 인증 시스템이 필요한 경우, 여기에서 표시된 대로 웹 세션을 시작하는 것이 번거로울 수 있습니다. 따라서 PowerShell을 통해 파일을 다운로드할 때 개인 링크(개인 클라우드 링크 - 개인 접근 권한)를 사용하는 것이 좋습니다.
따라서 위의 명령을 통해 PowerShell을 통해 CSV 또는 기타 파일 유형을 쉽게 다운로드할 수 있습니다. 설명한 대로, 올바른 형식이 고려된 경우 제공한 출력 파일에 다운로드되며, 사용하기 쉬운 파일이 되거나 다운로드한 파일을 읽을 수 있는 형식으로 변환할 수 있습니다.
Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.