我正在尝试使用powershell和Winscp.dll将整个驱动器(例如D:驱动器文件)从Windows盒复制到Linux盒。当我尝试复制特定文件夹时,我能够将所有文件从该文件夹复制到linux路径。但是,当我尝试将整个D:驱动器复制到linux box文件夹时,出现以下错误。
[d:\ $ RECYCLE.BIN \ S-1-5-21-1458064458-1966517317-3155185246-1003 *。*的文件检索错误。系统错误。代码:5。
[这里,我尝试使用Powershell和winscp.dll将Windows的D:驱动器中的数据文件备份到ubuntu计算机上。
$transferOptions = New-Object WinSCP.TransferOptions
$transferOptions.TransferMode = [WinSCP.TransferMode]::Binary
$transferResult =$session.PutFiles("d:\*", "/tmp/some/",$False,$transferOptions)
# Throw on any error
$transferResult.Check()
预期结果应该是它将整个D驱动器复制到目标linux box文件夹,但是上述错误即将到来。
您可以使WinSCP .NET程序集跳过通过处理Session.QueryReceived
event无法打开的所有文件和文件夹:
Session.QueryReceived
基于文章# Continue on any error
$session.add_QueryReceived( {
Write-Host "Error: $($_.Message)"
$_.Continue()
} )
$session.PutFiles("d:\*", "/tmp/some/").Check()
的代码。
另一种选择是使用Recursively download directory tree with custom error handling从传输中明确排除有问题的文件和文件夹。