繁体   English   中英

传输Powershell WinSCP后从FTP删除文件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM