powershell - Powershell 1.0 中的异常处理

标签 powershell exception-handling ftp powershell-1.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)

最佳答案

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

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

您还可以尝试像这样捕获特定异常:
trap [System.Net.WebException] { ... }

关于powershell - Powershell 1.0 中的异常处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3420200/

相关文章:

regex - 在文件中搜索RegEx字符串,仅返回文件名,路径和字符串

ios - Swift3如何捕获所有异常?

.net - 在 finally block 中检测异常

WordPress 需要 FTP 凭据来更新插件

php - FTP:我可以覆盖文件并保持其修改日期吗?

java - Maven使用ftp进行war上传

powershell - Add-PsSnapIn 和 Import-Module 有什么区别

powershell - 仅从 AD 获取计算机名称

variables - "$?"在PowerShell中意味着什么

java - JAX-WS Soap 故障未出现在 WSDL 中