Powershell 1.0中的异常处理

时间:2010-08-06 00:35:11

标签: powershell exception-handling ftp powershell-v1.0

我使用以下代码使用PowerShell 1.0上传文件。如何判断上传是否成功或是否有错误?如果上传成功,我需要删除该文件。

我的尝试:
1.陷阱条款。似乎无法让这个工作 2.检查$ webclient.UploadFile的返回值 - 这似乎总是一个空字符串,成功与否

$File = "D:\Dev\somefilename.zip"
$ftp = "ftp://username:password@example.com/pub/incoming/somefilename.zip"

"ftp url: $ftp"

$webclient = New-Object System.Net.WebClient $uri = New-Object System.Uri($ftp)

"Uploading $File..."

$webclient.UploadFile($uri, $File)

2 个答案:

答案 0 :(得分:3)

将陷阱放入新范围,以便捕获上载例如:

引发的异常
$succeeded = $true;
& {
    trap { $script:succeeded = $false; continue }
    $webclient.UploadFile($uri, $File)
}
if ($succeeded) { 'Yay!' } else { 'Doh!' }

您还可以尝试捕获特定的异常,如下所示:

trap [System.Net.WebException] { ... }

答案 1 :(得分:0)

UploadFile方法是同步的。如果它完成而没有抛出异常,那么你就取得了成功。如果失败,你应该得到一个可捕获的WebException。

http://msdn.microsoft.com/en-us/library/36s52zhs.aspx

我将省略有关错误捕获的详细信息,因为您似乎已经熟悉它了。