2
我有一個文件夾(ftp_region
),其內容與我的FTP中的數據類似。如何使用WinSCP下載較新的文件並將它們保存到兩個本地文件夾?
如何從我的FTP下載更新文件並將其保存到兩個本地文件夾(ftp_region
和其他文件夾)
現在,我用這個:
open "my ftp address"
get -neweronly "..." "..."
我有一個文件夾(ftp_region
),其內容與我的FTP中的數據類似。如何使用WinSCP下載較新的文件並將它們保存到兩個本地文件夾?
如何從我的FTP下載更新文件並將其保存到兩個本地文件夾(ftp_region
和其他文件夾)
現在,我用這個:
open "my ftp address"
get -neweronly "..." "..."
你不能用一個簡單的做到這一點WinSCP腳本。
您最好使用WinSCP .NET assembly。它允許你處理下載的文件。
一個例子代碼在PowerShell:
# Load WinSCP .NET assembly
Add-Type -Path "WinSCPnet.dll"
# Setup session options
$sessionOptions = New-Object WinSCP.SessionOptions -Property @{
Protocol = [WinSCP.Protocol]::Ftp
HostName = "ftp.example.com"
UserName = "user"
Password = "password"
}
Write-Host "Connecting..."
$session = New-Object WinSCP.Session
# $session.SessionLogPath = "C:\path\to\log\sync.log"
$session.Open($sessionOptions)
$remotePath = "/remote/path"
$localPathPrimary = "C:\backup\primary"
$localPathSecondary = "C:\backup\secondary"
Write-Host "Synchronizing..."
$result =
$session.SynchronizeDirectories(
[WinSCP.SynchronizationMode]::Local, $localPathPrimary, $remotePath, $False)
$result.Check()
Write-Host "Copying downloaded files to secondary backup..."
foreach ($download in $result.Downloads)
{
$filename = (Split-Path -Leaf $download.Destination)
$localFilePathSecondary = (Join-Path $localPathSecondary $filename)
Copy-Item $download.Destination $localFilePathSecondary
Write-Host "File $filename archived to both folders."
}
該代碼是基於一個官方示例Deleting remote files after successful remote to local synchronization。
「其他」文件夾,它是否包含與'ftp_region'相同的文件?或者,您是否需要將下載的文件複製到其他文件夾,無論文件已經存在? –
另一個文件夾是空的,我希望從myftp複製到downoal(只有newerfile)。所以當我從ftp下載的時候,文件被保存到兩個目錄 – bawel
實現起來會比較複雜。你爲什麼要這樣?也許有一個更簡單的解決方案,不需要下載到兩個文件夾。 –