我使用以下代码使用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)
答案 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
我将省略有关错误捕获的详细信息,因为您似乎已经熟悉它了。