В настоящее время у меня есть рабочий скрипт, который загружает файлы в удаленный каталог 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()
}