Powershell - Différence entre $? et $LASTEXITCODE
Pour me soutenir, vous pouvez vous abonner à la chaîne, partager et liker les vidéos, désactiver votre bloqueur de pub ou encore faire un don. Merci!
Bonjour,
Un nouvel article Powershell sur la différence entre les variables automatiques $? et $LASTEXITCODE
$LASTEXITCODE contient le code de sortie du dernier programme natif qui a été exécuté (0 indiquant que tout s’est bien déroulé, une autre valeur indique un problème)
$? contient le statut réussite/échec de la dernière déclaration (programme natif ou Powershell) : $true ou $false
Démonstration avec le code suivant :
# Sélectionnez et exécutez tout le code# Test commande native OK$null = ping localhost -n 1"Commande native OK `$? {0,15} " -f $?"Commande native OK `$LASTEXITCODE {0} " -f $LASTEXITCODE
# Test commande native KO$null = ping demo -n 1"Commande native KO `$? {0,16} " -f $?"Commande native KO `$LASTEXITCODE {0} " -f $LASTEXITCODE
# Test commande Powershell OK$null = Test-Connection localhost -Count 1"Commande Powershell OK `$? {0,15} " -f $?"Commande Powershell OK `$LASTEXITCODE {0} " -f $LASTEXITCODE
# Test commande Powershell KO$null = Test-Connection demo -Count 1 -ErrorAction SilentlyContinue"Commande Powershell KO `$?{0,17} " -f $?"Commande Powershell KO `$LASTEXITCODE {0} " -f $LASTEXITCODE
On voit apparaître : Commande Powershell OK $LASTEXITCODE 1
$LASTEXITCODE n’a pas été modifié dans le cas de la commande Powershell, la valeur 1 étant le code de sortie de ping demo -n 1.
Je ne peux donc pas utiliser $LASTEXITCODE pour vérifier la bonne exécution d’une commande Powershell, uniquement les commandes natives.
$? Réagit correctement pour les commandes natives et Powershell.
Liens en relation
Powershell - Envoyer simplement des objets dans des variables différentes
Powershell - Astuce - Envoyer simplement des objets dans des variables différentesPowershell - Tester la connectivité réseau et l'accessibilité aux ports
Tester la connectivité réseau et l'accessibilité aux ports avec PowershellPowershell - Afficher les connections réseau (équivalent de netstat)
Afficher les connections réseau (ports en écoute, connections actives...)Powershell - Tester la résolution de nom (équivalent de nslookup)
Commandes Powershell permettant de tester la résolution de nom (équivalent de nslookup)Powershell - Afficher et gérer la configuration DNS des interfaces réseau
Commandes Powershell permettant d'afficher et de gérer la configuration DNS des interfaces réseauPowershell - Gérer la configuration IP des interfaces réseau
Commandes Powershell permettant d'afficher et de modifier la configuration IP des interfaces réseau