Проверьте, успешно ли выполнена команда - PullRequest
18 голосов
/ 01 января 2012

Я попытался заключить в оператор if следующее, чтобы в случае успеха выполнить другую команду:

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

, но я не могу понять, как это сделать.Я даже пытался создать функцию, но не мог понять, как проверить, успешно ли завершена функция.

Ответы [ 2 ]

55 голосов
/ 01 января 2012

Попробуйте $? автоматическая переменная:

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

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

С 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.
9 голосов
/ 01 января 2012

вы можете попробовать:

$res = get-WmiObject -Class Win32_Share -Filter "Description='Default share'"
if ($res -ne $null)
{
  foreach ($drv in $res)
  {
    $Localdrives += $drv.Path
  }
}
else
{
  # your error
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...