1

我正在使用以下代码使用 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)

4

2 回答 2

3

将陷阱放到一个新范围内,以便捕获 Upload 引发的异常,例如:

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

您还可以尝试像这样捕获特定异常:

trap [System.Net.WebException] { ... }
于 2010-08-06T05:11:55.047 回答
0

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

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

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

于 2010-08-06T00:44:14.807 回答