PowerShell脚本特殊变量“$”&引用;为Tableau tabadmin命令返回不同的值

PowerShell脚本特殊变量“$”&引用;为Tableau tabadmin命令返回不同的值,powershell,backup,tableau-api,Powershell,Backup,Tableau Api,在为tableau服务器执行tabadmin命令时,power shell特殊变量“$?”遇到一些问题 简短示例: 如果我运行以下命令: tabadmin backup Write-Output $? 它将从PowerShell ISE和命令行工具/任务计划程序返回正确的值,即True,但如果我运行以下命令: tabadmin asldkfnaslkd Write-Output $? 我希望它会以错误退出,如果“$?”为假,它会从PowerShell ISE执行此操作,但不会从命令行

在为tableau服务器执行tabadmin命令时,power shell特殊变量“
$?
”遇到一些问题

简短示例:

如果我运行以下命令:

tabadmin backup 
Write-Output $? 
它将从PowerShell ISE和命令行工具/任务计划程序返回正确的值,即
True
,但如果我运行以下命令:

tabadmin asldkfnaslkd 
Write-Output $? 
我希望它会以错误退出,如果“$?”为假,它会从PowerShell ISE执行此操作,但不会从命令行工具/任务调度程序执行此操作。在命令行工具和任务调度器中,我得到了
$?
作为
True
,这非常奇怪

如果有人已经有这个问题,一些提示将不胜感激

谢谢

$?
是:

$?
包含上次操作的执行状态。它包含真实的 如果上次操作成功,则返回FALSE

在这两种情况下都是
True
,因为PowerShell能够成功执行您的命令:找到并启动可执行文件

您真正想知道的是退出代码,要获得它,您应该使用
$LastExitCode
。它包含上次运行的基于Windows的程序的退出代码


在PS ISE/PS console中检查此退出代码是否相同,这可能有助于了解他们的行为。

在这两种情况下都返回0,我认为tabadmin命令有问题,它没有返回正确的退出代码。我现在不能说没有我的工作计算机,但我怀疑“tabadmin blah”将导致提供帮助信息(因为“blah”不是可识别的tabadmin命令),并且将返回TRUE,因为操作在技术上成功。试试看?我有一个关于tableau的案例,他们似乎用新版本解决了这个问题