Question

Je suis en train d'utiliser la commande cleartool dans Powershell.

Si la commande échoue, il doit intercepter l'exception et faire l'action. Mais il n'a pas été pris par catch {}

try { 
       #If $viewname not exist it will throw error
       cleartool lsview $ViewName
    }
catch {

    # If list view fails , it means View doesn't exist. So create view
    Write-host "Create view"
    cleartool mkview -tag $ViewName -nsh $ccViews$ViewName".vws"

}

Lorsque les commandes en essai échoue, il ne invoque des expressions dans les prises.

commande catch Que ne fonctionnera pas avec non .net Articles liés?

Était-ce utile?

La solution

J'ai vu jamais le mécanisme d'exception utilisé dans le script Powershell pour cleartool.
(La scie couple moi étions dans « comment trouver racine [dossier] pour chaque composant à l'aide cleartool? », et dans " Comment décrire la ligne de base recommander pipeline ").

vieux fil (2006, donc pour la première version de Powershell ) illustre ce mécanisme de gestion des erreurs en utilisant $?:

cleartool lsco -cview -s . |
foreach {
  cleartool diff -pred -opt -sta "$_"
  if ($?) {
    cleartool unco -rm "$_"
  } else {
    cleartool ci -nc "$_"
  }
}

Pour utiliser votre mécanisme, vous voudrez peut-être votre appel encapsuler cleartool dans un Invoke-Command et retourner un code d'état de la fonction d'emballage, comme décrit dans « attraper code de retour d'une commande avec « invoke-command » - Powershell 2 "

.

Ou, au lieu d'appeler directement cleartool, vous pouvez essayer un appel CAL commandes comme dans cette zone script.

Autres conseils

cleartool est un fichier exe externe, il Does'nt jeter exception dans PowerShell environnement.

Selon

scroll top