What is `$?` in Powershell?

后端 未结 4 744
北荒
北荒 2020-12-01 15:22

What is the meaning of $? in Powershell?


Edit: TechNet answers in tautology, without explaining what \'succeed\' or \'fail\' mean.

4条回答
  •  囚心锁ツ
    2020-12-01 16:24

    It returns true if the last command was successful, else false.

    However, there are a number of caveats and non-obvious behaviour (e.g. what exactly is meant by "success"). I strongly recommend reading this article for a fuller treatment.

    For example, consider calling Get-ChildItem.

    PS> Get-ChildItem 
    
    PS> $? 
        True
    

    $? will return True as the call to Get-ChildItem succeeded.

    However, if you call Get-ChildItem on a directory which does not exist it will return an error.

    PS> Get-ChildItem \Some\Directory\Which\Does\Not\Exist
        Get-ChildItem : Cannot find path 'C:\Some\Directory\Which\Does\Not\Exist' because it does not exist.
    
    PS> $?
        False
    

    $? will return False here, as the previous command was not successful.

提交回复
热议问题