Как загрузить файл с определенным ключевым словом в имени в SFTP с WinSCP - PullRequest
0 голосов
/ 31 августа 2018

В настоящее время у меня есть рабочий скрипт, который загружает файлы в удаленный каталог SFTP. Проблема, которую я имею, состоит в том, что будет 3 файла, и они должны быть загружены в последовательности через различные интервалы Я уже думал об использовании Windows Task Scheduler, чтобы позаботиться о частоте загрузки, но есть другая проблема. Я определил, что имена файлов различаются в зависимости от одного ключевого слова. Есть ли способ изменить код для поиска файлов в каталоге по определенному имени? Например, он ищет в каталоге файл с именем «customer». На основе этого ключевого слова / имени он затем загружает этот конкретный файл. Пожалуйста, смотрите текущий рабочий скрипт:

# Load WinSCP .NET assembly
Add-Type -Path "WinSCPnet.dll"

# Setup session options
$sessionOptions = New-Object WinSCP.SessionOptions -Property @{
    Protocol = [WinSCP.Protocol]::Sftp
    HostName = "server"
    UserName = "username"
    Password = "password"
    SshHostKeyFingerprint = "key"
}

$session = New-Object WinSCP.Session

try
{
    # Connect
    $session.Open($sessionOptions)

    # Upload files
    $transferOptions = New-Object WinSCP.TransferOptions
    $transferOptions.TransferMode = [WinSCP.TransferMode]::Binary

    $transferResult =
        $session.PutFiles("E:\CMBPAID", "/NESAMSCARIMED", $False, $transferOptions)

    # Throw on any error
    $transferResult.Check()

    # Print results
    foreach ($transfer in $transferResult.Transfers)
    {
        Write-Host "Upload of $($transfer.FileName) succeeded"
    }
}
finally
{
    # Disconnect, clean up
    $session.Dispose()
}

1 Ответ

0 голосов
/ 01 сентября 2018

Использовать маску файла *customer*:

$transferResult =
    $session.PutFiles("E:\CMBPAID\*customer*", "/NESAMSCARIMED/", $False, $transferOptions)

(обратите внимание на косую черту, добавленную в конец целевого пути)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...