Session.getfiles () не работает правильно - Powershell - PullRequest
0 голосов
/ 13 января 2020

Попытка запустить следующий скрипт. Подключитесь к серверу ftp / sftp и получите файлы из remotepath в localpath

Поскольку существует список источников и назначений, я решил создать файл csv и передать значение, используя $ . Source и $ .Destination

Session.getfiles (), кажется, не работает, когда я импортирую свой CSV-файл. Но если я жестко закодирую путь, он, похоже, сработает.

$session.GetFiles("c:\source\test", "c:\destination\", $False, $transferOptions)

Цель: Скрипт читает список источников и перемещает файлы в соответствии с его назначением. Также go вернемся к # количеству дней и загрузим последний файл -

Ошибка: "Нет такого файла" или "невозможно получить атрибуты файла"

try{
  Add-Type -Path "WinSCPnet.dll"
  # Setup session options
  $sessionOptions = New-Object WinSCP.SessionOptions -Property @{
  Protocol = [WinSCP.Protocol]::sftp
  HostName = "xxxxx"
  UserName = "xxxxr"
  Password = "xxxxxxx"
  PortNumber="xx"
  FTPMode="Active"
 GiveUpSecurityAndAcceptAnySshHostKey = $true

}
$session = New-Object WinSCP.Session
try
{
    # Connect
    $session.Open($sessionOptions)
    # Download files
    $transferOptions = New-Object WinSCP.TransferOptions
    $transferOptions.TransferMode = [WinSCP.TransferMode]::Binary

 Import-Csv -Path "C:\movefiles.csv" -ErrorAction Stop 
    $transferResult =
        $session.GetFiles($_.Source, $_.Destination, $False, $transferOptions)
    # Throw on any error
    $transferResult.Check()
    # Print results
    foreach ($transfer in $transferResult.Transfers)
    {
        Write-Host "Download of $($transfer.FileName) succeeded"
    }
 }
 finally
 {
    # Disconnect, clean up
    $session.Dispose()
 }
#exit 0
}
catch
{
  Write-Host "Error: $($_.Exception.Message)"
  #exit 1
}

1 Ответ

0 голосов
/ 14 января 2020

Комментируя строку

 $transferresult.check()

Сценарий, кажется, работает. Но все еще не хватает, как получить только новые файлы

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