specific script remove force files delete all powershell

script - ¿Qué es `$?` En Powershell?



powershell force delete folder (2)

Devuelve true si el último comando fue exitoso, de lo contrario es false .

Sin embargo, hay una serie de advertencias y comportamiento no obvio (por ejemplo, qué significa exactamente "éxito"). Recomiendo leer este artículo para un tratamiento más completo.

Por ejemplo, considere llamar a Get-ChildItem.

PS> Get-ChildItem PS> $? True

ps devolverá True cuando la llamada a Get-ChildItem sea exitosa.

Sin embargo, si llama a Get-ChildItem en un directorio que no existe, devolverá un 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

ps devolverá False aquí, ya que el comando anterior no fue exitoso.

¿Cuál es el significado de $? en Powershell?

Editar: TechNet responde en tautología, sin explicar qué significa "triunfar" o "fallar".

ps
Contiene el estado de ejecución de la última operación. Contiene TRUE si la última operación fue exitosa y FALSE si falló.

Supuse $? simplemente probaría si $ LastExitCode es 0, pero encontré un ejemplo de contador donde $? es falso pero $ LastExitCode es verdadero.


$? contendrá $false si el último comando resultó en un error. Contendrá $true si no fuera así. En los días de PowerShell v1 , esta era una forma común de manejar errores. Por ejemplo, en un script, si desea verificar la existencia de un archivo y luego imprimir un mensaje personalizado si no fuera así, podría hacer lo siguiente:

Get-Item -Path john -ErrorAction silentlycontinue; if( -not $?) { ''could not find file.''; exit }`