Obsługa przerwania klawiatury, wykonanie bloku końcowego

Mam funkcję PowerShell, która przetwarza listę plików. używambegin, process iend bloki do tego:

begin {
    # prepate some stuff
}
process {
    # process each file
}
end {
    # clean up
}

Teraz, gdy trafięCtrl + C, cały skrypt kończy się dokładnie w miejscu, w którym był. To nie jest problem dla części procesu, ponieważ spowoduje to tylko trwałe zmiany w ostatnim poleceniu.

Jednak nadal chcę wykonywać to, co jest wend zablokuj, aby trochę posprzątać i wydrukować statystyki dotyczące plików, które udało się przetworzyć.

Czy istnieje czysty sposób na przechwytywanie przerw w klawiaturze, zachowując strukturę początkową / procesową / końcową?

questionAnswers(2)

yourAnswerToTheQuestion