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

时间:2015-09-21 13:26:03

标签: powershell backup tableau tableau-server

在为tableau服务器$?命令执行时,我遇到了关于power-shell特殊变量“tabadmin”的问题。

简短的例子:

如果我运行以下内容:

tabadmin backup 
Write-Output $? 

它将从PowerShell ISE和命令行工具/任务调度程序(True)返回正确的值,但如果我运行以下内容:

tabadmin asldkfnaslkd 
Write-Output $? 

我希望它会以错误退出并且“$?”如果是False,它是从PowerShell ISE 执行此操作,但不是从命令行工具/任务计划程序执行此操作。在命令行工具和任务计划程序中,我得$?True,这非常奇怪。

是否有人已经有这个问题,一些提示将不胜感激。

谢谢

1 个答案:

答案 0 :(得分:2)

$?automatic variable

  

$?包含上一个操作的执行状态。它包含TRUE   如果最后一次操作成功,如果失败则为FALSE。

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

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

检查PS ISE / PS控制台中的退出代码是否相同,这可能会对他们的行为有所了解。