PowerShell Work With FTP

2022-09-28

筆記如何使用 PowerShell 連線 FTP 進行資料下載。

logo

說明

使用的原理是使用 .NET 物件,使用 ftpwebrequest 讀取 FTP 並使用 WebClient 進行下載。


$FTPUser = "ftpuser"
$FTPUserPW = "********"
$ftp = "ftp://10.1.1.100/subfolder"
$Destination =  "C:\temp\"

$uri = [system.URI] $ftp
$ftpRequest = [system.net.ftpwebrequest]::Create($uri)
$ftpRequest.Credentials = 
    New-Object System.Net.NetworkCredential($FTPUser, $FTPUserPW)
$ftpRequest.Method = [system.net.WebRequestMethods+ftp]::ListDirectory
$response = $ftpRequest.GetResponse()
$reader = New-Object System.IO.StreamReader($response.GetResponseStream(), 'UTF-8')
$files = $reader.ReadToEnd().Split("`n")

foreach ($fileName in $files[0..5])
{
    $fileName = $fileName.Trim()
    $_ftpuri = "$ftp/$filename"
    $_dest = "$Destination$fileName".ToLower()
    $_webclient = New-Object System.Net.WebClient
    $_uri = New-Object System.Uri($_ftpuri)
    $_webclient.DownloadFile($_uri, $_dest)
}

相關連結

PowerShell 使用者不能錯過的 5 個技巧

Powershell 使用物件與資料結構 (Array, Hash)

PowerShell 常用指令筆記

參考資料

Powershell - Download files from FTP server