![](/img/trans.png)
[英]Download files from set of folders on FTP/SFTP server with WinSCP .NET assembly in PowerShell and email results
[英]Remove files from FTP after transfer Powershell WinSCP
我以前在此过程中使用.bat脚本,并且在编写Powershell脚本方面相对较新。 我正在从FTP位置进行传输,传输后需要从FTP服务器删除每个文件。 正确的语法是什么? 代码如下:
$a=Get-Date -format MMMM
try
{
# Load WinSCP .NET assembly
Add-Type -Path "C:\Program Files (x86)\WinSCP\WinSCPnet.dll"
# Setup session options
$sessionOptions = New-Object WinSCP.SessionOptions -Property @{
Protocol = [WinSCP.Protocol]::Sftp
HostName = "xxx.xxx.xxx.xxx"
UserName = "joe"
Password = "joebloggs"
SshHostKeyFingerprint = "ssh-rsa 1024 01:07:da:11:22:33:44:55:66"
FtpMode = [WinSCP.FtpMode]::Active
}
$session = New-Object WinSCP.Session
try
{
# Connect
$session.Open($sessionOptions)
# Download files
$transferOptions = New-Object WinSCP.TransferOptions
$transferOptions.TransferMode = [WinSCP.TransferMode]::Binary
$transferResult = $session.GetFiles("/*", "C:\Users\User\Dropbox\Rockar\Data\System Data\Raw Feeds\Stock\"+$a+"\", $False, $transferOptions)
# Throw on any error
$transferResult.Check()
# Print results
foreach ($transfer in $transferResult.Transfers)
{
Write-Host ("Download of {0} succeeded" -f $transfer.FileName)
}
}
finally
{
# Disconnect, clean up
$session.Dispose()
}
通过在WinSCP网站上进一步阅读有关getfiles参数winscp.net/eng/docs/library_session_getfiles#parameters的发现,找到了答案,只需将参数$false
从$false
设置为$true
您应该调用$session.RemoveFiles
,这是方法描述: https : //winscp.net/eng/docs/library_session_removefiles
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.