2017-06-02 3 views
2

J'écris un script qui dure depuis longtemps et qui, entre autres choses, accumule un tableau d'entrées de journal qui sont enregistrées dans un fichier à intervalles réguliers (mais pas chaque fois qu'une entrée est ajoutée). Le problème que je dois expliquer est ce qui se passe si le script est arrêté en cours d'exécution et que certains fichiers journaux ne sont pas sauvegardés.Exécuter un bloc de code sur une sortie forcée?

Existe-t-il un moyen de dire à Powershell d'exécuter un bloc de code tel que Add-Content -Path $LogLocation -Value $NewLogs avant qu'il ne se termine réellement?

Répondre

2

Use finally:

try { 
    # do stuff 
} finally { 
    Add-Content -Path $LogLocation -Value $NewLogs 
    # this gets executed if an exception is thrown, if the script is stopped, 
    # or if it exits normally; pretty much always 
}