web-dev-qa-db-fra.com

Vérifier si une commande s'est exécutée avec succès

J'ai essayé de placer ce qui suit dans une instruction if afin de pouvoir exécuter une autre commande si cela réussit:

Get-WmiObject -Class Win32_Share -ComputerName $Server.name -Credential $credentials -Filter "Description='Default share'" | Foreach-Object {
        $Localdrives += $_.Path

mais je ne sais pas comment le faire. J'ai même essayé de créer une fonction, mais je ne pouvais pas non plus savoir comment vérifier si la fonction avait réussi.

19
Sune

tu peux essayer :

$res = get-WmiObject -Class Win32_Share -Filter "Description='Default share'"
if ($res -ne $null)
{
  foreach ($drv in $res)
  {
    $Localdrives += $drv.Path
  }
}
else
{
  # your error
}
10
JPBlanc

Essayez le $? variable automatique:

$share = Get-WmiObject -Class Win32_Share -ComputerName $Server.name -Credential $credentials -Filter "Description='Default share'"

if($?)
{
   "command succeeded"
   $share | Foreach-Object {...}
}
else
{
   "command failed"
}

De about_Automatic_Variables :

$?
   Contains the execution status of the last operation. It contains
TRUE if the last operation succeeded and FALSE if it failed.
...

$LastExitCode
   Contains the exit code of the last Windows-based program that was run.
56
Shay Levy