我有一个 Powershell 脚本,用于将我们的生产数据库复制到测试环境,并执行相关的清理活动。我希望对控制台输出的信息进行清理,并且在清理 Az.sql 命令产生的错误消息方面遇到了一些麻烦。
我的首要操作之一是尝试查看是否存在需要清理的临时数据库。
如果没有发现它,我将在控制台中获得以下错误输出:
我的首要操作之一是尝试查看是否存在需要清理的临时数据库。
#clean up existing
$availableDatabase = Get-AzSqlDatabase -ResourceGroupName $TestResourceGroup -ServerName $TestServerName -DatabaseName $TestTempDatabaseName
如果没有发现它,我将在控制台中获得以下错误输出:
Remove-AzSqlDatabase : The Resource
'Microsoft.Sql/servers/xxxx/databases/reap_prod_copy_2' under resource group 'xxxx' was not found.
At C:\Users\xxxx\Desktop\reap-replace-test.ps1:17 char:1
+ Remove-AzSqlDatabase -ResourceGroupName $TestResourceGroup -ServerNam ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : CloseError: (:) [Remove-AzSqlDatabase], CloudException
+ FullyQualifiedErrorId : Microsoft.Azure.Commands.Sql.Database.Cmdlet.RemoveAzureSqlDatabase
我希望捕获这个输出,并提供一个简单的“不存在”消息,甚至只是完全跳过任何输出。我尝试在结尾处加上"| Out-Null",但这似乎并没有影响输出。有什么见解吗?
我想捕获命令的输出结果,并提供一个简单的"不存在"信息,甚至干脆不显示任何输出。我已经尝试在命令结尾添加"| Out-Null",但它好像并没有对输出产生任何影响。你有什么建议吗?
Remove-AzSqlDatabase
中使用-ErrorAction Stop
参数的 try/catch 块吗? - Benjamin Hubbard