Não, a linha de comando do Windows ftp.exe
não suporta a retomada de transferência.
Mas você pode baixar automaticamente qualquer cliente FTP de linha de comando portátil de terceiros que suporte a retomada e uso automáticos.
Por exemplo, o seguinte código do PowerShell faz o download do pacote WinSCP .NET assembly , o extrai e inicia um upload recuperável:
$winscp_assembly = "WinSCPnet.dll"
if (Test-Path $winscp_assembly)
{
Write-Host "WinSCP already downloaded"
}
else
{
$webclient = New-Object System.Net.WebClient
$winscp_version = "5.13.4"
$winscp_archive = "WinSCP-$winscp_version-Automation.zip"
Write-Host "Downloading $winscp_archive ..."
$url =
"https://sourceforge.net/projects/winscp/files/WinSCP/" +
$winscp_version + "/" + $winscp_archive + "/download"
$webclient.DownloadFile($url, $winscp_archive)
Write-Host "Done"
Write-Host "Extracting $winscp_archive ..."
$shell = New-Object -ComObject Shell.Application
$current_path = [string](Resolve-Path ".")
$winscp_archive_path = [string](Resolve-Path $winscp_archive)
$winscp_archive_folder = $shell.NameSpace($winscp_archive_path)
$current_folder = $shell.NameSpace($current_path)
$copy_options = 4 -bor 16 # SHCONTCH_NOPROGRESSBOX or SHCONTCH_RESPONDYESTOALL
$current_folder.CopyHere($winscp_archive_folder.Items(), $copy_options)
Write-Host "Done"
}
Add-Type -Path $winscp_assembly
$ftp_host = "ftp.example.com"
$ftp_path = "/target/path/"
$upload_path = "C:\big\file.dat"
Write-Host "Starting resumable upload of $upload_path to $ftp_host ..."
# Setup session options
$sessionOptions = New-Object WinSCP.SessionOptions
$sessionOptions = New-Object WinSCP.SessionOptions -Property @{
Protocol = [WinSCP.Protocol]::Ftp
HostName = $ftp_host
UserName = "username"
Password = "password"
}
$session = New-Object WinSCP.Session
$session.Open($sessionOptions)
$session.PutFiles($upload_path, $ftp_path).Check()
Para executar o script do PowerShell ( upload.ps1
) use:
powershell.exe -File upload.ps1 -ExecutionPolicy Bypass
(eu sou o autor do WinSCP)
Outra opção é implementar o currículo manualmente usando FtpWebRequest
.
Veja Como continuar ou continuar o upload do FTP após a interrupção da Internet .
Novamente, você pode usar o FtpWebRequest
de um script do PowerShell. Consulte Carregar arquivos com FTP usando o PowerShell .