PowerShell WinSCP .NET Assembly GetFiles –“等待 WinSCP 响应超时”

问题描述 投票:0回答:1

在 Powershell 上的 .NET Assembly 的

$session.GetFiles
文档页面本身上执行 
GetFiles
命令后,我遇到了一个奇怪的问题。

当我拿走源目录中的

ClientFolder
$session.GetFiles
的第一个参数)时,它会给出超时错误“超时等待WinSCP响应”。当我将
ClientFolder
放回原处时,它将运行并检索子目录中所需的文件。 为什么?子目录的遍历是否有递归限制?它在请求的
FileMask
文件和
ClientFolder
之间只有几层子目录。我没看出问题所在。

# Connect
$session.Open($sessionOptions)

#
$transferOptions = New-Object WinSCP.TransferOptions
$transferOptions.FileMask = "*Finance.xlsx"

# Download files
$transferOptions.AddRawSettings("ExcludeEmptyDirectories", "1")
$session.GetFiles("/CompanyName/HealthFiles/ClientFolder/*", "C:\Users\UserName\Desktop\targetfolder\", $False, $transferOptions).Check()

这将成功运行并返回文件,但我想删除

ClientFolder
级别并运行它。如果我这样做,我将超时并立即下载任何文件...

powershell sftp winscp winscp-net getfiles
1个回答
1
投票

这解决了错误。添加

$session.Timeout

# Connect
$session.Open($sessionOptions)
$session.Timeout = New-TimeSpan -Seconds 400

#
$transferOptions = New-Object WinSCP.TransferOptions
$transferOptions.FileMask = "*Finance.xlsx"

# Download files
$transferOptions.AddRawSettings("ExcludeEmptyDirectories", "1")
$session.GetFiles("/CompanyName/HealthFiles/*", "C:\Users\UserName\Desktop\targetfolder\", $False, $transferOptions).Check()
© www.soinside.com 2019 - 2024. All rights reserved.