Powershell 当单个文件上载失败时,使用WinSCP.NET程序集的批处理文件上载将停止
我正在使用Powershell 当单个文件上载失败时,使用WinSCP.NET程序集的批处理文件上载将停止,powershell,file-upload,ftp,winscp,winscp-net,Powershell,File Upload,Ftp,Winscp,Winscp Net,我正在使用WinSCP连接到FTP并上载一堆文件,但当文件无法上载时,我遇到了问题,当脚本停止时,以下文件无法上载。我主要使用的代码来自 意外行为如下所示: 我在文件夹中有4个文件被上传,文件1、2、3和4,如果我从文件3中删除所有权限并运行脚本,文件1和2被上传到FTP并被移动到另一个目录,那么脚本将以文件3没有权限的错误结束,文件4不会被上传 我不确定我是否忽略了任何东西,脚本是否应该继续,即使它不能对file3做任何事情?我不确定是否有其他方法使单个文件的上载失败 如果需要自定义错误处理,
WinSCP
连接到FTP并上载一堆文件,但当文件无法上载时,我遇到了问题,当脚本停止时,以下文件无法上载。我主要使用的代码来自
意外行为如下所示:
我在文件夹中有4个文件被上传,文件1、2、3和4,如果我从文件3中删除所有权限并运行脚本,文件1和2被上传到FTP并被移动到另一个目录,那么脚本将以文件3没有权限的错误结束,文件4不会被上传
我不确定我是否忽略了任何东西,脚本是否应该继续,即使它不能对file3做任何事情?我不确定是否有其他方法使单个文件的上载失败 如果需要自定义错误处理,则必须自己循环文件
$localPath = "C:\local\path"
$remotePath = "/remote/path/"
$localFiles = Get-ChildItem -Path $localPath
foreach ($localFile in $localFiles)
{
Write-Host "Uploading $($localFile.FullName)..."
$sourcePath = [WinSCP.RemotePath]::EscapeFileMask($localFile.FullName)
$transferResult = $session.PutFiles($sourcePath, $remotePath)
if (!$transferResult.IsSuccess)
{
# Print error (but continue with other files)
Write-Host ("Error upload file $($localFile.FullName): " +
"$($transferResult.Failures[0].Message)")
}
}
与官方示例所做的类似。如果需要自定义错误处理,则必须自己循环文件
$localPath = "C:\local\path"
$remotePath = "/remote/path/"
$localFiles = Get-ChildItem -Path $localPath
foreach ($localFile in $localFiles)
{
Write-Host "Uploading $($localFile.FullName)..."
$sourcePath = [WinSCP.RemotePath]::EscapeFileMask($localFile.FullName)
$transferResult = $session.PutFiles($sourcePath, $remotePath)
if (!$transferResult.IsSuccess)
{
# Print error (but continue with other files)
Write-Host ("Error upload file $($localFile.FullName): " +
"$($transferResult.Failures[0].Message)")
}
}
类似于官方的例子